Changes in directory llvm/lib/Target/X86:
X86InstrSSE.td updated: 1.45 -> 1.46 --- Log message: Change SSE pack operation definitions to fit what the intrinsics expected. For example, packsswb actually creates a v16i8 from a pair of v8i16. But since the intrinsic specification forces the output type to match the operands. --- Diffs of the changes: (+20 -20) X86InstrSSE.td | 40 ++++++++++++++++++++-------------------- 1 files changed, 20 insertions(+), 20 deletions(-) Index: llvm/lib/Target/X86/X86InstrSSE.td diff -u llvm/lib/Target/X86/X86InstrSSE.td:1.45 llvm/lib/Target/X86/X86InstrSSE.td:1.46 --- llvm/lib/Target/X86/X86InstrSSE.td:1.45 Wed Mar 29 17:07:14 2006 +++ llvm/lib/Target/X86/X86InstrSSE.td Wed Mar 29 17:52:48 2006 @@ -1182,39 +1182,39 @@ def PACKSSWBrr : PDI<0x63, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2), "packsswb {$src2, $dst|$dst, $src2}", - [(set VR128:$dst, (v16i8 (int_x86_sse2_packsswb_128 - (v8i16 VR128:$src1), - (v8i16 VR128:$src2))))]>; + [(set VR128:$dst, (v8i16 (int_x86_sse2_packsswb_128 + VR128:$src1, + VR128:$src2)))]>; def PACKSSWBrm : PDI<0x63, MRMSrcMem, (ops VR128:$dst, VR128:$src1, i128mem:$src2), "packsswb {$src2, $dst|$dst, $src2}", - [(set VR128:$dst, (v16i8 (int_x86_sse2_packsswb_128 - (v8i16 VR128:$src1), - (loadv8i16 addr:$src2))))]>; + [(set VR128:$dst, (v8i16 (int_x86_sse2_packsswb_128 + VR128:$src1, + (bc_v8i16 (loadv2f64 addr:$src2)))))]>; def PACKSSDWrr : PDI<0x6B, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2), - "packsswb {$src2, $dst|$dst, $src2}", - [(set VR128:$dst, (v8i16 (int_x86_sse2_packssdw_128 - (v4i32 VR128:$src1), - (v4i32 VR128:$src2))))]>; + "packssdw {$src2, $dst|$dst, $src2}", + [(set VR128:$dst, (v4i32 (int_x86_sse2_packssdw_128 + VR128:$src1, + VR128:$src2)))]>; def PACKSSDWrm : PDI<0x6B, MRMSrcReg, (ops VR128:$dst, VR128:$src1, i128mem:$src2), - "packsswb {$src2, $dst|$dst, $src2}", - [(set VR128:$dst, (v8i16 (int_x86_sse2_packssdw_128 - (v4i32 VR128:$src1), - (loadv4i32 addr:$src2))))]>; + "packssdw {$src2, $dst|$dst, $src2}", + [(set VR128:$dst, (v4i32 (int_x86_sse2_packssdw_128 + VR128:$src1, + (bc_v4i32 (loadv2i64 addr:$src2)))))]>; def PACKUSWBrr : PDI<0x67, MRMSrcReg, (ops VR128:$dst, VR128:$src1, VR128:$src2), "packuswb {$src2, $dst|$dst, $src2}", - [(set VR128:$dst, (v16i8 (int_x86_sse2_packuswb_128 - (v8i16 VR128:$src1), - (v8i16 VR128:$src2))))]>; + [(set VR128:$dst, (v8i16 (int_x86_sse2_packuswb_128 + VR128:$src1, + VR128:$src2)))]>; def PACKUSWBrm : PDI<0x67, MRMSrcReg, (ops VR128:$dst, VR128:$src1, i128mem:$src2), "packuswb {$src2, $dst|$dst, $src2}", - [(set VR128:$dst, (v16i8 (int_x86_sse2_packuswb_128 - (v8i16 VR128:$src1), - (loadv8i16 addr:$src2))))]>; + [(set VR128:$dst, (v8i16 (int_x86_sse2_packuswb_128 + VR128:$src1, + (bc_v8i16 (loadv2i64 addr:$src2)))))]>; } // Shuffle and unpack instructions _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits