From: Juergen Ributzka Date: Wed, 11 Mar 2015 17:29:03 +0000 (+0000) Subject: Add the "vbroadcasti128" instruction back. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=9814f7b92cbea6f4912f84b0c388541bdcebd529;p=oota-llvm.git 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231945 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td index ed0a4b710ca..a49512f4ca5 100644 --- a/lib/Target/X86/X86InstrSSE.td +++ b/lib/Target/X86/X86InstrSSE.td @@ -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)>; diff --git a/test/MC/X86/x86_64-avx-encoding.s b/test/MC/X86/x86_64-avx-encoding.s index 9da08df54a8..1440d080ee8 100644 --- a/test/MC/X86/x86_64-avx-encoding.s +++ b/test/MC/X86/x86_64-avx-encoding.s @@ -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