diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-01-13 06:59:47 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-01-13 06:59:47 +0000 |
commit | c30432ab573a3755ccd15dfeb03d64e6c0b90ccb (patch) | |
tree | 7efe6574258f3f4dc5cc20baa5a6555321da2116 /lib | |
parent | 96f678f2d78ae9a2a8c99ca612bf59c056b36797 (diff) | |
download | llvm-c30432ab573a3755ccd15dfeb03d64e6c0b90ccb.tar.gz llvm-c30432ab573a3755ccd15dfeb03d64e6c0b90ccb.tar.bz2 llvm-c30432ab573a3755ccd15dfeb03d64e6c0b90ccb.tar.xz |
Add patterns for v16i16 and v32i8 immAllZerosV to select VPXOR to match v4i64 and v8i32.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148106 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Target/X86/X86InstrSSE.td | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index 51cc7f384e..d3cd6a82fd 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -289,6 +289,14 @@ def AVX_SET0PDY : PDI<0x57, MRMInitReg, (outs VR256:$dst), (ins), "", // AVX has no support for 256-bit integer instructions, but since the 128-bit // VPXOR instruction writes zero to its upper part, it's safe build zeros. +def : Pat<(v32i8 immAllZerosV), (SUBREG_TO_REG (i8 0), (V_SET0), sub_xmm)>; +def : Pat<(bc_v32i8 (v8f32 immAllZerosV)), + (SUBREG_TO_REG (i8 0), (V_SET0), sub_xmm)>; + +def : Pat<(v16i16 immAllZerosV), (SUBREG_TO_REG (i16 0), (V_SET0), sub_xmm)>; +def : Pat<(bc_v16i16 (v8f32 immAllZerosV)), + (SUBREG_TO_REG (i16 0), (V_SET0), sub_xmm)>; + def : Pat<(v8i32 immAllZerosV), (SUBREG_TO_REG (i32 0), (V_SET0), sub_xmm)>; def : Pat<(bc_v8i32 (v8f32 immAllZerosV)), (SUBREG_TO_REG (i32 0), (V_SET0), sub_xmm)>; |