aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/IntrinsicsPowerPC.td
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-04-03 17:20:06 +0000
committerChris Lattner <sabre@nondot.org>2006-04-03 17:20:06 +0000
commit03017c75c777a8c039376e3979c58ab642f7887f (patch)
tree4744b0ab48c1e2e2f2607c8b6a4e879f6d162665 /include/llvm/IntrinsicsPowerPC.td
parentc461a51234b1b631b9be3992ecf82abf7eca30f4 (diff)
downloadexternal_llvm-03017c75c777a8c039376e3979c58ab642f7887f.zip
external_llvm-03017c75c777a8c039376e3979c58ab642f7887f.tar.gz
external_llvm-03017c75c777a8c039376e3979c58ab642f7887f.tar.bz2
shrinkify intrinsics more by using some local classes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27373 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/IntrinsicsPowerPC.td')
-rw-r--r--include/llvm/IntrinsicsPowerPC.td92
1 files changed, 32 insertions, 60 deletions
diff --git a/include/llvm/IntrinsicsPowerPC.td b/include/llvm/IntrinsicsPowerPC.td
index d78df22..aa04171 100644
--- a/include/llvm/IntrinsicsPowerPC.td
+++ b/include/llvm/IntrinsicsPowerPC.td
@@ -27,6 +27,12 @@ let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
// PowerPC Altivec Intrinsic Class Definitions.
//
+/// PowerPC_Vec_FF_Intrinsic - A PowerPC intrinsic that takes one v4f32
+/// vector and returns one. These intrinsics have no side effects.
+class PowerPC_Vec_FF_Intrinsic<string GCCIntSuffix>
+ : PowerPC_Vec_Intrinsic<GCCIntSuffix,
+ [llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
+
/// PowerPC_Vec_FFF_Intrinsic - A PowerPC intrinsic that takes two v4f32
/// vectors and returns one. These intrinsics have no side effects.
class PowerPC_Vec_FFF_Intrinsic<string GCCIntSuffix>
@@ -371,58 +377,29 @@ let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
def int_ppc_altivec_vsldoi : GCCBuiltin<"__builtin_altivec_vsldoi_4si">,
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty,
llvm_v4i32_ty, llvm_int_ty], [InstrNoMem]>;
- def int_ppc_altivec_vslo : GCCBuiltin<"__builtin_altivec_vslo">,
- Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
- [InstrNoMem]>;
-
- def int_ppc_altivec_vslb : GCCBuiltin<"__builtin_altivec_vslb">,
- Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vslh : GCCBuiltin<"__builtin_altivec_vslh">,
- Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vslw : GCCBuiltin<"__builtin_altivec_vslw">,
- Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
- [InstrNoMem]>;
-
- // Right Shifts.
- def int_ppc_altivec_vsr : GCCBuiltin<"__builtin_altivec_vsr">,
- Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vsro : GCCBuiltin<"__builtin_altivec_vsro">,
- Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
- [InstrNoMem]>;
-
- def int_ppc_altivec_vsrb : GCCBuiltin<"__builtin_altivec_vsrb">,
- Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vsrh : GCCBuiltin<"__builtin_altivec_vsrh">,
- Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vsrw : GCCBuiltin<"__builtin_altivec_vsrw">,
- Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vsrab : GCCBuiltin<"__builtin_altivec_vsrab">,
- Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vsrah : GCCBuiltin<"__builtin_altivec_vsrah">,
- Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vsraw : GCCBuiltin<"__builtin_altivec_vsraw">,
- Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
- [InstrNoMem]>;
-
- // Rotates.
- def int_ppc_altivec_vrlb : GCCBuiltin<"__builtin_altivec_vrlb">,
- Intrinsic<[llvm_v16i8_ty, llvm_v16i8_ty, llvm_v16i8_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vrlh : GCCBuiltin<"__builtin_altivec_vrlh">,
- Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty, llvm_v8i16_ty],
- [InstrNoMem]>;
- def int_ppc_altivec_vrlw : GCCBuiltin<"__builtin_altivec_vrlw">,
- Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty, llvm_v4i32_ty],
- [InstrNoMem]>;
+}
+def int_ppc_altivec_vslo : PowerPC_Vec_WWW_Intrinsic<"vslo">;
+def int_ppc_altivec_vslb : PowerPC_Vec_BBB_Intrinsic<"vslb">;
+def int_ppc_altivec_vslh : PowerPC_Vec_HHH_Intrinsic<"vslh">;
+def int_ppc_altivec_vslw : PowerPC_Vec_WWW_Intrinsic<"vslw">;
+
+// Right Shifts.
+def int_ppc_altivec_vsr : PowerPC_Vec_WWW_Intrinsic<"vsr">;
+def int_ppc_altivec_vsro : PowerPC_Vec_WWW_Intrinsic<"vsro">;
+
+def int_ppc_altivec_vsrb : PowerPC_Vec_BBB_Intrinsic<"vsrb">;
+def int_ppc_altivec_vsrh : PowerPC_Vec_HHH_Intrinsic<"vsrh">;
+def int_ppc_altivec_vsrw : PowerPC_Vec_WWW_Intrinsic<"vsrw">;
+def int_ppc_altivec_vsrab : PowerPC_Vec_BBB_Intrinsic<"vsrab">;
+def int_ppc_altivec_vsrah : PowerPC_Vec_HHH_Intrinsic<"vsrah">;
+def int_ppc_altivec_vsraw : PowerPC_Vec_WWW_Intrinsic<"vsraw">;
+
+// Rotates.
+def int_ppc_altivec_vrlb : PowerPC_Vec_BBB_Intrinsic<"vrlb">;
+def int_ppc_altivec_vrlh : PowerPC_Vec_HHH_Intrinsic<"vrlh">;
+def int_ppc_altivec_vrlw : PowerPC_Vec_WWW_Intrinsic<"vrlw">;
+let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
// Miscellaneous.
def int_ppc_altivec_lvsl :
Intrinsic<[llvm_v16i8_ty, llvm_ptr_ty], [InstrNoMem]>;
@@ -435,14 +412,9 @@ let TargetPrefix = "ppc" in { // All PPC intrinsics start with "llvm.ppc.".
def int_ppc_altivec_vsel : GCCBuiltin<"__builtin_altivec_vsel_4si">,
Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty,
llvm_v4i32_ty, llvm_v4i32_ty], [InstrNoMem]>;
-
- def int_ppc_altivec_vexptefp : GCCBuiltin<"__builtin_altivec_vexptefp">,
- Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
- def int_ppc_altivec_vlogefp : GCCBuiltin<"__builtin_altivec_vlogefp">,
- Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
- def int_ppc_altivec_vrefp : GCCBuiltin<"__builtin_altivec_vrefp">,
- Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
- def int_ppc_altivec_vrsqrtefp : GCCBuiltin<"__builtin_altivec_vrsqrtefp">,
- Intrinsic<[llvm_v4f32_ty, llvm_v4f32_ty], [InstrNoMem]>;
}
+def int_ppc_altivec_vexptefp : PowerPC_Vec_FF_Intrinsic<"vexptefp">;
+def int_ppc_altivec_vlogefp : PowerPC_Vec_FF_Intrinsic<"vlogefp">;
+def int_ppc_altivec_vrefp : PowerPC_Vec_FF_Intrinsic<"vrefp">;
+def int_ppc_altivec_vrsqrtefp : PowerPC_Vec_FF_Intrinsic<"vrsqrtefp">;