mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 10:42:39 +01:00
[X86][SSE] Don't scrub address math from interleaved shuffle tests
This commit is contained in:
parent
f81ad3ab04
commit
f76b3abd62
@ -1,4 +1,4 @@
|
||||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_mem_shuffle
|
||||
; RUN: llc < %s -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefix=SSE
|
||||
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse3 | FileCheck %s --check-prefix=SSE
|
||||
; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+ssse3 | FileCheck %s --check-prefix=SSE
|
||||
@ -171,7 +171,7 @@ define void @splat2_i8(<32 x i8>* %s, <64 x i8>* %d) {
|
||||
;
|
||||
; AVX2-LABEL: splat2_i8:
|
||||
; AVX2: # %bb.0:
|
||||
; AVX2-NEXT: vpermq {{.*#+}} ymm0 = mem[0,2,1,3]
|
||||
; AVX2-NEXT: vpermq $216, (%rdi), %ymm0 # ymm0 = mem[0,2,1,3]
|
||||
; AVX2-NEXT: vpunpcklbw {{.*#+}} ymm1 = ymm0[0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23]
|
||||
; AVX2-NEXT: vpunpckhbw {{.*#+}} ymm0 = ymm0[8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31]
|
||||
; AVX2-NEXT: vmovdqu %ymm0, 32(%rsi)
|
||||
@ -218,7 +218,7 @@ define void @splat2_i16(<16 x i16>* %s, <32 x i16>* %d) {
|
||||
;
|
||||
; AVX2-LABEL: splat2_i16:
|
||||
; AVX2: # %bb.0:
|
||||
; AVX2-NEXT: vpermq {{.*#+}} ymm0 = mem[0,2,1,3]
|
||||
; AVX2-NEXT: vpermq $216, (%rdi), %ymm0 # ymm0 = mem[0,2,1,3]
|
||||
; AVX2-NEXT: vpunpcklwd {{.*#+}} ymm1 = ymm0[0,0,1,1,2,2,3,3,8,8,9,9,10,10,11,11]
|
||||
; AVX2-NEXT: vpunpckhwd {{.*#+}} ymm0 = ymm0[4,4,5,5,6,6,7,7,12,12,13,13,14,14,15,15]
|
||||
; AVX2-NEXT: vmovdqu %ymm0, 32(%rsi)
|
||||
@ -263,7 +263,7 @@ define void @splat2_i32(<8 x i32>* %s, <16 x i32>* %d) {
|
||||
;
|
||||
; AVX2-LABEL: splat2_i32:
|
||||
; AVX2: # %bb.0:
|
||||
; AVX2-NEXT: vpermpd {{.*#+}} ymm0 = mem[0,2,1,3]
|
||||
; AVX2-NEXT: vpermpd $216, (%rdi), %ymm0 # ymm0 = mem[0,2,1,3]
|
||||
; AVX2-NEXT: vpermilps {{.*#+}} ymm1 = ymm0[0,0,1,1,4,4,5,5]
|
||||
; AVX2-NEXT: vpermilps {{.*#+}} ymm0 = ymm0[2,2,3,3,6,6,7,7]
|
||||
; AVX2-NEXT: vmovups %ymm0, 32(%rsi)
|
||||
|
@ -1,4 +1,4 @@
|
||||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
||||
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_mem_shuffle
|
||||
; RUN: llc < %s -mtriple=x86_64-pc-linux -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX1
|
||||
; RUN: llc < %s -mtriple=x86_64-pc-linux -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX2OR512,AVX2
|
||||
; RUN: llc < %s -mtriple=x86_64-pc-linux -mattr=+avx512f -mattr=+avx512bw | FileCheck %s --check-prefixes=AVX,AVX2OR512,AVX512
|
||||
@ -58,8 +58,8 @@ define <4 x double> @load_factorf64_1(<16 x double>* %ptr) {
|
||||
; AVX: # %bb.0:
|
||||
; AVX-NEXT: vmovupd (%rdi), %ymm0
|
||||
; AVX-NEXT: vmovupd 32(%rdi), %ymm1
|
||||
; AVX-NEXT: vperm2f128 {{.*#+}} ymm0 = ymm0[0,1],mem[0,1]
|
||||
; AVX-NEXT: vperm2f128 {{.*#+}} ymm1 = ymm1[0,1],mem[0,1]
|
||||
; AVX-NEXT: vperm2f128 $32, 64(%rdi), %ymm0, %ymm0 # ymm0 = ymm0[0,1],mem[0,1]
|
||||
; AVX-NEXT: vperm2f128 $32, 96(%rdi), %ymm1, %ymm1 # ymm1 = ymm1[0,1],mem[0,1]
|
||||
; AVX-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
|
||||
; AVX-NEXT: vmulpd %ymm0, %ymm0, %ymm0
|
||||
; AVX-NEXT: retq
|
||||
@ -1761,7 +1761,7 @@ define void @splat4_v8f32_load_store(<8 x float>* %s, <32 x float>* %d) {
|
||||
;
|
||||
; AVX512-LABEL: splat4_v8f32_load_store:
|
||||
; AVX512: # %bb.0:
|
||||
; AVX512-NEXT: vbroadcastf64x4 {{.*#+}} zmm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; AVX512-NEXT: vbroadcastf64x4 (%rdi), %zmm0 # zmm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,8,0,8,1,9,1,9,2,10,2,10,3,11,3,11]
|
||||
; AVX512-NEXT: vpermd %zmm0, %zmm1, %zmm1
|
||||
; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm2 = [4,12,4,12,5,13,5,13,6,14,6,14,7,15,7,15]
|
||||
@ -1821,7 +1821,7 @@ define void @splat4_v8i32_load_store(<8 x i32>* %s, <32 x i32>* %d) {
|
||||
;
|
||||
; AVX512-LABEL: splat4_v8i32_load_store:
|
||||
; AVX512: # %bb.0:
|
||||
; AVX512-NEXT: vbroadcasti64x4 {{.*#+}} zmm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; AVX512-NEXT: vbroadcasti64x4 (%rdi), %zmm0 # zmm0 = mem[0,1,2,3,0,1,2,3]
|
||||
; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,8,0,8,1,9,1,9,2,10,2,10,3,11,3,11]
|
||||
; AVX512-NEXT: vpermd %zmm0, %zmm1, %zmm1
|
||||
; AVX512-NEXT: vmovdqa64 {{.*#+}} zmm2 = [4,12,4,12,5,13,5,13,6,14,6,14,7,15,7,15]
|
||||
@ -1936,13 +1936,13 @@ define <2 x i64> @PR37616(<16 x i64>* %a0) {
|
||||
; AVX1-LABEL: PR37616:
|
||||
; AVX1: # %bb.0:
|
||||
; AVX1-NEXT: vmovaps 16(%rdi), %xmm0
|
||||
; AVX1-NEXT: vunpcklpd {{.*#+}} xmm0 = xmm0[0],mem[0]
|
||||
; AVX1-NEXT: vunpcklpd 48(%rdi), %xmm0, %xmm0 # xmm0 = xmm0[0],mem[0]
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2OR512-LABEL: PR37616:
|
||||
; AVX2OR512: # %bb.0:
|
||||
; AVX2OR512-NEXT: vmovaps (%rdi), %ymm0
|
||||
; AVX2OR512-NEXT: vunpcklpd {{.*#+}} ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
|
||||
; AVX2OR512-NEXT: vunpcklpd 32(%rdi), %ymm0, %ymm0 # ymm0 = ymm0[0],mem[0],ymm0[2],mem[2]
|
||||
; AVX2OR512-NEXT: vextractf128 $1, %ymm0, %xmm0
|
||||
; AVX2OR512-NEXT: vzeroupper
|
||||
; AVX2OR512-NEXT: retq
|
||||
|
Loading…
Reference in New Issue
Block a user