@@ -29,21 +29,15 @@ define <4 x double> @concat_vpermv3_ops_vpermv_v4f64(ptr %p0, <4 x i64> %m) {
29
29
define <4 x double > @concat_vpermv3_ops_vpermv_swap_v4f64 (ptr %p0 , <4 x i64 > %m ) {
30
30
; X86-LABEL: concat_vpermv3_ops_vpermv_swap_v4f64:
31
31
; X86: # %bb.0:
32
- ; X86-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
33
32
; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
34
- ; X86-NEXT: vmovupd (%eax), %zmm1
35
- ; X86-NEXT: vshuff64x2 {{.*#+}} zmm1 = zmm1[4,5,6,7,0,1,2,3]
36
- ; X86-NEXT: vpermpd %zmm1, %zmm0, %zmm0
37
- ; X86-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
33
+ ; X86-NEXT: vmovapd 32(%eax), %ymm1
34
+ ; X86-NEXT: vpermi2pd (%eax), %ymm1, %ymm0
38
35
; X86-NEXT: retl
39
36
;
40
37
; X64-LABEL: concat_vpermv3_ops_vpermv_swap_v4f64:
41
38
; X64: # %bb.0:
42
- ; X64-NEXT: # kill: def $ymm0 killed $ymm0 def $zmm0
43
- ; X64-NEXT: vmovupd (%rdi), %zmm1
44
- ; X64-NEXT: vshuff64x2 {{.*#+}} zmm1 = zmm1[4,5,6,7,0,1,2,3]
45
- ; X64-NEXT: vpermpd %zmm1, %zmm0, %zmm0
46
- ; X64-NEXT: # kill: def $ymm0 killed $ymm0 killed $zmm0
39
+ ; X64-NEXT: vmovapd 32(%rdi), %ymm1
40
+ ; X64-NEXT: vpermi2pd (%rdi), %ymm1, %ymm0
47
41
; X64-NEXT: retq
48
42
%p1 = getelementptr inbounds nuw i8 , ptr %p0 , i64 32
49
43
%lo = load <4 x double >, ptr %p1 , align 32
0 commit comments