[llvm] r231945 - Add the "vbroadcasti128" instruction back.

Juergen Ributzka juergen at apple.com
Wed Mar 11 10:29:04 PDT 2015


Author: ributzka
Date: Wed Mar 11 12:29:03 2015
New Revision: 231945

URL: http://llvm.org/viewvc/llvm-project?rev=231945&view=rev
Log:
Add the "vbroadcasti128" instruction back.

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.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrSSE.td
    llvm/trunk/test/MC/X86/x86_64-avx-encoding.s

Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=231945&r1=231944&r2=231945&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Wed Mar 11 12:29:03 2015
@@ -7833,6 +7833,11 @@ def VBROADCASTSDYrr  : avx2_broadcast_re
                                       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)>;

Modified: llvm/trunk/test/MC/X86/x86_64-avx-encoding.s
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/X86/x86_64-avx-encoding.s?rev=231945&r1=231944&r2=231945&view=diff
==============================================================================
--- llvm/trunk/test/MC/X86/x86_64-avx-encoding.s (original)
+++ llvm/trunk/test/MC/X86/x86_64-avx-encoding.s Wed Mar 11 12:29:03 2015
@@ -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





More information about the llvm-commits mailing list