[llvm-commits] [llvm] r52353 - in /llvm/trunk: include/llvm/Intrinsics.td include/llvm/IntrinsicsX86.td test/CodeGen/X86/commute-intrinsic.ll utils/TableGen/CodeGenDAGPatterns.cpp utils/TableGen/CodeGenDAGPatterns.h utils/TableGen/CodeGenIntrinsics.h utils/TableGen/CodeGenTarget.cpp
Dan Gohman
gohman at apple.com
Mon Jun 16 13:53:14 PDT 2008
On Jun 16, 2008, at 1:29 PM, Evan Cheng wrote:
> // Integer shift ops.
> @@ -553,24 +553,24 @@
> let TargetPrefix = "x86" in { // All intrinsics start with
> "llvm.x86.".
> def int_x86_ssse3_phadd_w :
> GCCBuiltin<"__builtin_ia32_phaddw">,
> Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty,
> - llvm_v4i16_ty], [IntrNoMem]>;
> + llvm_v4i16_ty], [IntrNoMem, Commutative]>;
> def int_x86_ssse3_phadd_w_128 :
> GCCBuiltin<"__builtin_ia32_phaddw128">,
> Intrinsic<[llvm_v8i16_ty, llvm_v8i16_ty,
> - llvm_v8i16_ty], [IntrNoMem]>;
> + llvm_v8i16_ty], [IntrNoMem, Commutative]>;
>
> def int_x86_ssse3_phadd_d :
> GCCBuiltin<"__builtin_ia32_phaddd">,
> Intrinsic<[llvm_v2i32_ty, llvm_v2i32_ty,
> - llvm_v2i32_ty], [IntrNoMem]>;
> + llvm_v2i32_ty], [IntrNoMem, Commutative]>;
> def int_x86_ssse3_phadd_d_128 :
> GCCBuiltin<"__builtin_ia32_phaddd128">,
> Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty,
> - llvm_v4i32_ty], [IntrNoMem]>;
> + llvm_v4i32_ty], [IntrNoMem, Commutative]>;
>
> def int_x86_ssse3_phadd_sw :
> GCCBuiltin<"__builtin_ia32_phaddsw">,
> Intrinsic<[llvm_v4i16_ty, llvm_v4i16_ty,
> - llvm_v4i16_ty], [IntrNoMem]>;
> + llvm_v4i16_ty], [IntrNoMem, Commutative]>;
> def int_x86_ssse3_phadd_sw_128 :
> GCCBuiltin<"__builtin_ia32_phaddsw128">,
> Intrinsic<[llvm_v4i32_ty, llvm_v4i32_ty,
> - llvm_v4i32_ty], [IntrNoMem]>;
> + llvm_v4i32_ty], [IntrNoMem, Commutative]>;
Hi Evan,
Horizontal-add instructions are not commutative. It looks like
X86InstrSSE.td is mistaken about this too.
Dan
More information about the llvm-commits
mailing list