[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

Evan Cheng evan.cheng at apple.com
Mon Jun 16 14:16:31 PDT 2008


Fixed. Thanks.

Evan
On Jun 16, 2008, at 1:53 PM, Dan Gohman wrote:

>
> 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
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list