diff options
author | Chris Lattner <sabre@nondot.org> | 2010-03-08 18:57:56 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-03-08 18:57:56 +0000 |
commit | 3485b51c4d962de994b389d6ae10106c97e89cf6 (patch) | |
tree | eafd03caee8b504546c47e5f95ff3a2fdf98b4ab /lib/Target/X86/X86InstrMMX.td | |
parent | 341b27406d591dac244a9fe3dc1a7d4f2f5e32a6 (diff) | |
download | llvm-3485b51c4d962de994b389d6ae10106c97e89cf6.tar.gz llvm-3485b51c4d962de994b389d6ae10106c97e89cf6.tar.bz2 llvm-3485b51c4d962de994b389d6ae10106c97e89cf6.tar.xz |
fix some more ambiguous patterns, remove another nontemporalstore
pattern which is broken (source and address swapped).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97958 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrMMX.td')
-rw-r--r-- | lib/Target/X86/X86InstrMMX.td | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Target/X86/X86InstrMMX.td b/lib/Target/X86/X86InstrMMX.td index c8e07239d0..eea0eb8923 100644 --- a/lib/Target/X86/X86InstrMMX.td +++ b/lib/Target/X86/X86InstrMMX.td @@ -160,7 +160,8 @@ def MMX_MOVQ2DQrr : SSDIi8<0xD6, MRMSrcReg, (outs VR128:$dst), (ins VR64:$src), "movq2dq\t{$src, $dst|$dst, $src}", [(set VR128:$dst, (movl immAllZerosV, - (v2i64 (scalar_to_vector (i64 (bitconvert VR64:$src))))))]>; + (v2i64 (scalar_to_vector + (i64 (bitconvert (v1i64 VR64:$src)))))))]>; let neverHasSideEffects = 1 in def MMX_MOVQ2FR64rr: SSDIi8<0xD6, MRMSrcReg, (outs FR64:$dst), (ins VR64:$src), @@ -271,9 +272,9 @@ defm MMX_PSRAD : MMXI_binop_rmi_int<0xE2, 0x72, MRM4r, "psrad", // Shift up / down and insert zero's. def : Pat<(v1i64 (X86vshl VR64:$src, (i8 imm:$amt))), - (v1i64 (MMX_PSLLQri VR64:$src, imm:$amt))>; + (MMX_PSLLQri VR64:$src, imm:$amt)>; def : Pat<(v1i64 (X86vshr VR64:$src, (i8 imm:$amt))), - (v1i64 (MMX_PSRLQri VR64:$src, imm:$amt))>; + (MMX_PSRLQri VR64:$src, imm:$amt)>; // Comparison Instructions defm MMX_PCMPEQB : MMXI_binop_rm_int<0x74, "pcmpeqb", int_x86_mmx_pcmpeq_b>; @@ -577,7 +578,7 @@ let AddedComplexity = 20 in { // Clear top half. let AddedComplexity = 15 in { def : Pat<(v2i32 (X86vzmovl VR64:$src)), - (MMX_PUNPCKLDQrr VR64:$src, (MMX_V_SET0))>; + (MMX_PUNPCKLDQrr VR64:$src, (v2i32 (MMX_V_SET0)))>; } // Patterns to perform canonical versions of vector shuffling. |