Index: lib/Target/X86/X86InstrSSE.td =================================================================== --- lib/Target/X86/X86InstrSSE.td +++ lib/Target/X86/X86InstrSSE.td @@ -2524,10 +2524,10 @@ "shufps\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}", memopv8f32, SSEPackedSingle>, TB, VEX_4V, VEX_L; defm VSHUFPD : sse12_shuffle, TB, OpSize, VEX_4V; defm VSHUFPDY : sse12_shuffle, TB, OpSize, VEX_4V, VEX_L; let Constraints = "$src1 = $dst" in { Index: test/MC/Disassembler/X86/intel-syntax.txt =================================================================== --- test/MC/Disassembler/X86/intel-syntax.txt +++ test/MC/Disassembler/X86/intel-syntax.txt @@ -105,6 +105,9 @@ # CHECK: retf 0x66 0xcb +# CHECK: vshufpd xmm0, xmm1, xmm2, 1 +0xc5 0xf1 0xc6 0xc2 0x01 + # CHECK: vpgatherqq ymm2, qword ptr [rdi + 2*ymm1], ymm0 0xc4 0xe2 0xfd 0x91 0x14 0x4f Index: test/MC/X86/intel-syntax.s =================================================================== --- test/MC/X86/intel-syntax.s +++ test/MC/X86/intel-syntax.s @@ -69,6 +69,8 @@ mov QWORD PTR FS:320, RAX // CHECK: movq %rax, %fs:20(%rbx) mov QWORD PTR FS:20[rbx], RAX +// CHECK: vshufpd $1, %xmm2, %xmm1, %xmm0 + vshufpd XMM0, XMM1, XMM2, 1 // CHECK: vpgatherdd %xmm8, (%r15,%xmm9,2), %xmm1 vpgatherdd XMM10, DWORD PTR [R15 + 2*XMM9], XMM8 // CHECK: movsd -8, %xmm5