Changes in directory llvm/lib/Target/X86:
X86InstrSSE.td updated: 1.173 -> 1.174 --- Log message: - Rename MOVDSS2DIrr to MOVSS2DIrr for consistency sake. - Add MOVDI2SSrm and MOVSS2DImr to fold load / store for i32 <-> f32 bit_convert patterns. --- Diffs of the changes: (+9 -3) X86InstrSSE.td | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 deletions(-) Index: llvm/lib/Target/X86/X86InstrSSE.td diff -u llvm/lib/Target/X86/X86InstrSSE.td:1.173 llvm/lib/Target/X86/X86InstrSSE.td:1.174 --- llvm/lib/Target/X86/X86InstrSSE.td:1.173 Tue Dec 5 12:45:06 2006 +++ llvm/lib/Target/X86/X86InstrSSE.td Thu Dec 14 13:43:11 2006 @@ -1687,6 +1687,9 @@ "movd {$src, $dst|$dst, $src}", [(set FR32:$dst, (bitconvert GR32:$src))]>; +def MOVDI2SSrm : PDI<0x6E, MRMSrcMem, (ops FR32:$dst, i32mem:$src), + "movd {$src, $dst|$dst, $src}", + [(set FR32:$dst, (bitconvert (loadi32 addr:$src)))]>; // SSE2 instructions with XS prefix def MOVQI2PQIrm : I<0x7E, MRMSrcMem, (ops VR128:$dst, i64mem:$src), @@ -1729,9 +1732,12 @@ [(store (i32 (vector_extract (v4i32 VR128:$src), (iPTR 0))), addr:$dst)]>; -def MOVDSS2DIrr : PDI<0x7E, MRMDestReg, (ops GR32:$dst, FR32:$src), - "movd {$src, $dst|$dst, $src}", - [(set GR32:$dst, (bitconvert FR32:$src))]>; +def MOVSS2DIrr : PDI<0x7E, MRMDestReg, (ops GR32:$dst, FR32:$src), + "movd {$src, $dst|$dst, $src}", + [(set GR32:$dst, (bitconvert FR32:$src))]>; +def MOVSS2DImr : PDI<0x7E, MRMDestMem, (ops i32mem:$dst, FR32:$src), + "movd {$src, $dst|$dst, $src}", + [(store (i32 (bitconvert FR32:$src)), addr:$dst)]>; // Move to lower bits of a VR128, leaving upper bits alone. _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits