diff options
author | Mon P Wang <wangmp@apple.com> | 2008-12-18 21:42:19 +0000 |
---|---|---|
committer | Mon P Wang <wangmp@apple.com> | 2008-12-18 21:42:19 +0000 |
commit | af9b952627d8fa10412b8cf7319d3e334446547f (patch) | |
tree | 0a478992f7ba11f6e07f040aee53d7513ba263f0 /lib/Target/X86/X86InstrSSE.td | |
parent | 1d045486ca88e442f027ebb6deecddfdbbc6bc44 (diff) |
Fixed x86 code generation of multiple for v2i64. It was incorrect for SSE4.1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61211 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrSSE.td')
-rw-r--r-- | lib/Target/X86/X86InstrSSE.td | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index 576c7e691e..90b22317cd 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -3313,12 +3313,13 @@ defm PMAXUD : SS41I_binop_rm_int<0x3F, "pmaxud", defm PMAXUW : SS41I_binop_rm_int<0x3E, "pmaxuw", int_x86_sse41_pmaxuw, 1>; +defm PMULDQ : SS41I_binop_rm_int<0x28, "pmuldq", int_x86_sse41_pmuldq, 1>; + def : Pat<(v2i64 (X86pcmpeqq VR128:$src1, VR128:$src2)), (PCMPEQQrr VR128:$src1, VR128:$src2)>; def : Pat<(v2i64 (X86pcmpeqq VR128:$src1, (memop addr:$src2))), (PCMPEQQrm VR128:$src1, addr:$src2)>; - /// SS41I_binop_rm_int - Simple SSE 4.1 binary operator let Constraints = "$src1 = $dst" in { multiclass SS41I_binop_patint<bits<8> opc, string OpcodeStr, ValueType OpVT, @@ -3353,9 +3354,6 @@ let Constraints = "$src1 = $dst" in { } defm PMULLD : SS41I_binop_patint<0x40, "pmulld", v4i32, mul, int_x86_sse41_pmulld, 1>; -defm PMULDQ : SS41I_binop_patint<0x28, "pmuldq", v2i64, mul, - int_x86_sse41_pmuldq, 1>; - /// SS41I_binop_rmi_int - SSE 4.1 binary operator with 8-bit immediate let Constraints = "$src1 = $dst" in { |