Add the "vbroadcasti128" instruction back.
authorJuergen Ributzka <juergen@apple.com>
Wed, 11 Mar 2015 17:29:03 +0000 (17:29 +0000)
committerJuergen Ributzka <juergen@apple.com>
Wed, 11 Mar 2015 17:29:03 +0000 (17:29 +0000)
This is a follow-up to r231182. This adds the "vbroadcasti128" instruction
back, but without the intrinsic mapping. Also add a test to check the
instriction encoding.

This is related to rdar://problem/18742778.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231945 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td
test/MC/X86/x86_64-avx-encoding.s

index ed0a4b710cae7f340f6d059f22eeec1fa9c5a283..a49512f4ca51c3526ede24db9ff97e386e92541f 100644 (file)
@@ -7833,6 +7833,11 @@ def VBROADCASTSDYrr  : avx2_broadcast_reg<0x19, "vbroadcastsd", VR256,
                                       int_x86_avx2_vbroadcast_sd_pd_256,
                                       WriteFShuffle256>, VEX_L;
 
+let Predicates = [HasAVX2] in
+def VBROADCASTI128 : avx_broadcast_no_int<0x5A, "vbroadcasti128", VR256,
+                                          i128mem, v4i64, loadv2i64,
+                                          WriteLoad>, VEX_L;
+
 let Predicates = [HasAVX] in
 def : Pat<(int_x86_avx_vbroadcastf128_ps_256 addr:$src),
           (VBROADCASTF128 addr:$src)>;
index 9da08df54a85f20faecbde48ebb0d95c6d78c082..1440d080ee8039062efd00aa90e52a717cef35fe 100644 (file)
@@ -3724,6 +3724,10 @@ vdivpd  -4(%rcx,%rbx,8), %xmm10, %xmm11
 // CHECK: encoding: [0xc4,0x63,0x2d,0x40,0x18,0x03]
           vdpps  $3, (%rax), %ymm10, %ymm11
 
+// CHECK: vbroadcasti128  (%rax), %ymm12
+// CHECK: encoding: [0xc4,0x62,0x7d,0x5a,0x20]
+          vbroadcasti128  (%rax), %ymm12
+
 // CHECK: vbroadcastf128  (%rax), %ymm12
 // CHECK: encoding: [0xc4,0x62,0x7d,0x1a,0x20]
           vbroadcastf128  (%rax), %ymm12