aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/X86/X86InstrFormats.td
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-07-25 23:05:25 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-07-25 23:05:25 +0000
commit6a32adc4e5e9aae2c6d5d2192ae0c0a01858d8c2 (patch)
tree314f2ab65e0bb44b895fb0945b16a794cccc1f2d /lib/Target/X86/X86InstrFormats.td
parent233fa392453158a41c567b2e445f503d3553b2af (diff)
downloadexternal_llvm-6a32adc4e5e9aae2c6d5d2192ae0c0a01858d8c2.zip
external_llvm-6a32adc4e5e9aae2c6d5d2192ae0c0a01858d8c2.tar.gz
external_llvm-6a32adc4e5e9aae2c6d5d2192ae0c0a01858d8c2.tar.bz2
- Handle special scalar_to_vector case: splats. Using a native 128-bit
shuffle before inserting on a 256-bit vector. - Add AVX versions of movd/movq instructions - Introduce a few COPY patterns to match insert_subvector instructions. This turns a trivial insert_subvector instruction into a register copy, coalescing the xmm into a ymm and avoid emiting on more instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136002 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrFormats.td')
-rw-r--r--lib/Target/X86/X86InstrFormats.td3
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrFormats.td b/lib/Target/X86/X86InstrFormats.td
index 6d89bcc..34d2676 100644
--- a/lib/Target/X86/X86InstrFormats.td
+++ b/lib/Target/X86/X86InstrFormats.td
@@ -501,6 +501,9 @@ class RSDI<bits<8> o, Format F, dag outs, dag ins, string asm,
class RPDI<bits<8> o, Format F, dag outs, dag ins, string asm,
list<dag> pattern>
: PDI<o, F, outs, ins, asm, pattern>, REX_W;
+class VRPDI<bits<8> o, Format F, dag outs, dag ins, string asm,
+ list<dag> pattern>
+ : VPDI<o, F, outs, ins, asm, pattern>, VEX_W;
// MMX Instruction templates
//