forked from OSchip/llvm-project
[X86] update_llc_test_checks vector-shuffle-*. NFC.
Some of them had gone stale. llvm-svn: 240485
This commit is contained in:
parent
6a60be7749
commit
89ae9a1e28
|
@ -653,28 +653,28 @@ define <16 x i8> @shuffle_v16i8_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz(
|
|||
define <16 x i8> @shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz(i8 %i) {
|
||||
; SSE2-LABEL: shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; SSE2: # BB#0:
|
||||
; SSE2-NEXT: shll $8, %edi
|
||||
; SSE2-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE2-NEXT: shll $8, %edi
|
||||
; SSE2-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE2-NEXT: pinsrw $2, %edi, %xmm0
|
||||
; SSE2-NEXT: retq
|
||||
;
|
||||
; SSSE3-LABEL: shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; SSSE3: # BB#0:
|
||||
; SSSE3-NEXT: shll $8, %edi
|
||||
; SSSE3-NEXT: pxor %xmm0, %xmm0
|
||||
; SSSE3-NEXT: shll $8, %edi
|
||||
; SSSE3-NEXT: pxor %xmm0, %xmm0
|
||||
; SSSE3-NEXT: pinsrw $2, %edi, %xmm0
|
||||
; SSSE3-NEXT: retq
|
||||
;
|
||||
; SSE41-LABEL: shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; SSE41: # BB#0:
|
||||
; SSE41-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE41-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE41-NEXT: pinsrb $5, %edi, %xmm0
|
||||
; SSE41-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrb $5, %edi, %xmm0
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrb $5, %edi, %xmm0, %xmm0
|
||||
; AVX-NEXT: retq
|
||||
%a = insertelement <16 x i8> undef, i8 %i, i32 0
|
||||
%shuffle = shufflevector <16 x i8> zeroinitializer, <16 x i8> %a, <16 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 16, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -684,28 +684,28 @@ define <16 x i8> @shuffle_v16i8_zz_zz_zz_zz_zz_16_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz(
|
|||
define <16 x i8> @shuffle_v16i8_zz_uu_uu_zz_uu_uu_zz_zz_zz_zz_zz_zz_zz_zz_zz_16(i8 %i) {
|
||||
; SSE2-LABEL: shuffle_v16i8_zz_uu_uu_zz_uu_uu_zz_zz_zz_zz_zz_zz_zz_zz_zz_16:
|
||||
; SSE2: # BB#0:
|
||||
; SSE2-NEXT: shll $8, %edi
|
||||
; SSE2-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE2-NEXT: shll $8, %edi
|
||||
; SSE2-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE2-NEXT: pinsrw $7, %edi, %xmm0
|
||||
; SSE2-NEXT: retq
|
||||
;
|
||||
; SSSE3-LABEL: shuffle_v16i8_zz_uu_uu_zz_uu_uu_zz_zz_zz_zz_zz_zz_zz_zz_zz_16:
|
||||
; SSSE3: # BB#0:
|
||||
; SSSE3-NEXT: shll $8, %edi
|
||||
; SSSE3-NEXT: pxor %xmm0, %xmm0
|
||||
; SSSE3-NEXT: shll $8, %edi
|
||||
; SSSE3-NEXT: pxor %xmm0, %xmm0
|
||||
; SSSE3-NEXT: pinsrw $7, %edi, %xmm0
|
||||
; SSSE3-NEXT: retq
|
||||
;
|
||||
; SSE41-LABEL: shuffle_v16i8_zz_uu_uu_zz_uu_uu_zz_zz_zz_zz_zz_zz_zz_zz_zz_16:
|
||||
; SSE41: # BB#0:
|
||||
; SSE41-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE41-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE41-NEXT: pinsrb $15, %edi, %xmm0
|
||||
; SSE41-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v16i8_zz_uu_uu_zz_uu_uu_zz_zz_zz_zz_zz_zz_zz_zz_zz_16:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrb $15, %edi, %xmm0
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrb $15, %edi, %xmm0, %xmm0
|
||||
; AVX-NEXT: retq
|
||||
%a = insertelement <16 x i8> undef, i8 %i, i32 0
|
||||
%shuffle = shufflevector <16 x i8> zeroinitializer, <16 x i8> %a, <16 x i32> <i32 0, i32 undef, i32 undef, i32 3, i32 undef, i32 undef, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 16>
|
||||
|
@ -716,27 +716,27 @@ define <16 x i8> @shuffle_v16i8_zz_zz_19_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz(
|
|||
; SSE2-LABEL: shuffle_v16i8_zz_zz_19_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; SSE2: # BB#0:
|
||||
; SSE2-NEXT: movzbl %dil, %eax
|
||||
; SSE2-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE2-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE2-NEXT: pinsrw $1, %eax, %xmm0
|
||||
; SSE2-NEXT: retq
|
||||
;
|
||||
; SSSE3-LABEL: shuffle_v16i8_zz_zz_19_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; SSSE3: # BB#0:
|
||||
; SSSE3-NEXT: movzbl %dil, %eax
|
||||
; SSSE3-NEXT: pxor %xmm0, %xmm0
|
||||
; SSSE3-NEXT: pxor %xmm0, %xmm0
|
||||
; SSSE3-NEXT: pinsrw $1, %eax, %xmm0
|
||||
; SSSE3-NEXT: retq
|
||||
;
|
||||
; SSE41-LABEL: shuffle_v16i8_zz_zz_19_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; SSE41: # BB#0:
|
||||
; SSE41-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE41-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE41-NEXT: pinsrb $2, %edi, %xmm0
|
||||
; SSE41-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v16i8_zz_zz_19_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz_zz:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrb $2, %edi, %xmm0
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrb $2, %edi, %xmm0, %xmm0
|
||||
; AVX-NEXT: retq
|
||||
%a = insertelement <16 x i8> undef, i8 %i, i32 3
|
||||
%shuffle = shufflevector <16 x i8> zeroinitializer, <16 x i8> %a, <16 x i32> <i32 0, i32 1, i32 19, i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
|
||||
|
@ -1341,12 +1341,12 @@ define <16 x i8> @shuffle_v16i8_uu_02_03_zz_uu_06_07_zz_uu_10_11_zz_uu_14_15_zz(
|
|||
define <16 x i8> @shuffle_v16i8_bitcast_unpack(<16 x i8> %a, <16 x i8> %b) {
|
||||
; SSE-LABEL: shuffle_v16i8_bitcast_unpack:
|
||||
; SSE: # BB#0:
|
||||
; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
|
||||
; SSE-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v16i8_bitcast_unpack:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: punpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
|
||||
; AVX-NEXT: vpunpcklbw {{.*#+}} xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1],xmm0[2],xmm1[2],xmm0[3],xmm1[3],xmm0[4],xmm1[4],xmm0[5],xmm1[5],xmm0[6],xmm1[6],xmm0[7],xmm1[7]
|
||||
; AVX-NEXT: retq
|
||||
%shuffle8 = shufflevector <16 x i8> %a, <16 x i8> %b, <16 x i32> <i32 7, i32 23, i32 6, i32 22, i32 5, i32 21, i32 4, i32 20, i32 3, i32 19, i32 2, i32 18, i32 1, i32 17, i32 0, i32 16>
|
||||
%bitcast32 = bitcast <16 x i8> %shuffle8 to <4 x float>
|
||||
|
|
|
@ -1384,14 +1384,14 @@ define <8 x i16> @shuffle_v8i16_8zzzzzzz(i16 %i) {
|
|||
define <8 x i16> @shuffle_v8i16_z8zzzzzz(i16 %i) {
|
||||
; SSE-LABEL: shuffle_v8i16_z8zzzzzz:
|
||||
; SSE: # BB#0:
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pinsrw $1, %edi, %xmm0
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v8i16_z8zzzzzz:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $1, %edi, %xmm0
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $1, %edi, %xmm0, %xmm0
|
||||
; AVX-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 0
|
||||
%shuffle = shufflevector <8 x i16> zeroinitializer, <8 x i16> %a, <8 x i32> <i32 2, i32 8, i32 3, i32 7, i32 6, i32 5, i32 4, i32 3>
|
||||
|
@ -1401,14 +1401,14 @@ define <8 x i16> @shuffle_v8i16_z8zzzzzz(i16 %i) {
|
|||
define <8 x i16> @shuffle_v8i16_zzzzz8zz(i16 %i) {
|
||||
; SSE-LABEL: shuffle_v8i16_zzzzz8zz:
|
||||
; SSE: # BB#0:
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pinsrw $5, %edi, %xmm0
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v8i16_zzzzz8zz:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $5, %edi, %xmm0
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $5, %edi, %xmm0, %xmm0
|
||||
; AVX-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 0
|
||||
%shuffle = shufflevector <8 x i16> zeroinitializer, <8 x i16> %a, <8 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 8, i32 0, i32 0>
|
||||
|
@ -1418,14 +1418,14 @@ define <8 x i16> @shuffle_v8i16_zzzzz8zz(i16 %i) {
|
|||
define <8 x i16> @shuffle_v8i16_zuuzuuz8(i16 %i) {
|
||||
; SSE-LABEL: shuffle_v8i16_zuuzuuz8:
|
||||
; SSE: # BB#0:
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pinsrw $7, %edi, %xmm0
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v8i16_zuuzuuz8:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $7, %edi, %xmm0
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $7, %edi, %xmm0, %xmm0
|
||||
; AVX-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 0
|
||||
%shuffle = shufflevector <8 x i16> zeroinitializer, <8 x i16> %a, <8 x i32> <i32 0, i32 undef, i32 undef, i32 3, i32 undef, i32 undef, i32 6, i32 8>
|
||||
|
@ -1435,14 +1435,14 @@ define <8 x i16> @shuffle_v8i16_zuuzuuz8(i16 %i) {
|
|||
define <8 x i16> @shuffle_v8i16_zzBzzzzz(i16 %i) {
|
||||
; SSE-LABEL: shuffle_v8i16_zzBzzzzz:
|
||||
; SSE: # BB#0:
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pxor %xmm0, %xmm0
|
||||
; SSE-NEXT: pinsrw $2, %edi, %xmm0
|
||||
; SSE-NEXT: retq
|
||||
;
|
||||
; AVX-LABEL: shuffle_v8i16_zzBzzzzz:
|
||||
; AVX: # BB#0:
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $2, %edi, %xmm0
|
||||
; AVX-NEXT: vpxor %xmm0, %xmm0, %xmm0
|
||||
; AVX-NEXT: vpinsrw $2, %edi, %xmm0, %xmm0
|
||||
; AVX-NEXT: retq
|
||||
%a = insertelement <8 x i16> undef, i16 %i, i32 3
|
||||
%shuffle = shufflevector <8 x i16> zeroinitializer, <8 x i16> %a, <8 x i32> <i32 0, i32 1, i32 11, i32 3, i32 4, i32 5, i32 6, i32 7>
|
||||
|
|
|
@ -810,30 +810,20 @@ define <4 x i64> @stress_test1(<4 x i64> %a, <4 x i64> %b) {
|
|||
}
|
||||
|
||||
define <4 x i64> @insert_reg_and_zero_v4i64(i64 %a) {
|
||||
; AVX1-LABEL: insert_reg_and_zero_v4i64:
|
||||
; AVX1: # BB#0:
|
||||
; AVX1-NEXT: vmovq %rdi, %xmm0
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: insert_reg_and_zero_v4i64:
|
||||
; AVX2: # BB#0:
|
||||
; AVX2-NEXT: vmovq %rdi, %xmm0
|
||||
; AVX2-NEXT: retq
|
||||
; ALL-LABEL: insert_reg_and_zero_v4i64:
|
||||
; ALL: # BB#0:
|
||||
; ALL-NEXT: vmovq %rdi, %xmm0
|
||||
; ALL-NEXT: retq
|
||||
%v = insertelement <4 x i64> undef, i64 %a, i64 0
|
||||
%shuffle = shufflevector <4 x i64> %v, <4 x i64> zeroinitializer, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
|
||||
ret <4 x i64> %shuffle
|
||||
}
|
||||
|
||||
define <4 x i64> @insert_mem_and_zero_v4i64(i64* %ptr) {
|
||||
; AVX1-LABEL: insert_mem_and_zero_v4i64:
|
||||
; AVX1: # BB#0:
|
||||
; AVX1-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: insert_mem_and_zero_v4i64:
|
||||
; AVX2: # BB#0:
|
||||
; AVX2-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
|
||||
; AVX2-NEXT: retq
|
||||
; ALL-LABEL: insert_mem_and_zero_v4i64:
|
||||
; ALL: # BB#0:
|
||||
; ALL-NEXT: vmovq {{.*#+}} xmm0 = mem[0],zero
|
||||
; ALL-NEXT: retq
|
||||
%a = load i64, i64* %ptr
|
||||
%v = insertelement <4 x i64> undef, i64 %a, i64 0
|
||||
%shuffle = shufflevector <4 x i64> %v, <4 x i64> zeroinitializer, <4 x i32> <i32 0, i32 5, i32 6, i32 7>
|
||||
|
@ -874,15 +864,10 @@ define <4 x double> @splat_mem_v4f64(double* %ptr) {
|
|||
}
|
||||
|
||||
define <4 x i64> @splat_mem_v4i64(i64* %ptr) {
|
||||
; AVX1-LABEL: splat_mem_v4i64:
|
||||
; AVX1: # BB#0:
|
||||
; AVX1-NEXT: vbroadcastsd (%rdi), %ymm0
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: splat_mem_v4i64:
|
||||
; AVX2: # BB#0:
|
||||
; AVX2-NEXT: vbroadcastsd (%rdi), %ymm0
|
||||
; AVX2-NEXT: retq
|
||||
; ALL-LABEL: splat_mem_v4i64:
|
||||
; ALL: # BB#0:
|
||||
; ALL-NEXT: vbroadcastsd (%rdi), %ymm0
|
||||
; ALL-NEXT: retq
|
||||
%a = load i64, i64* %ptr
|
||||
%v = insertelement <4 x i64> undef, i64 %a, i64 0
|
||||
%shuffle = shufflevector <4 x i64> %v, <4 x i64> undef, <4 x i32> <i32 0, i32 0, i32 0, i32 0>
|
||||
|
@ -923,7 +908,7 @@ define <4 x double> @bitcast_v4f64_0426(<4 x double> %a, <4 x double> %b) {
|
|||
;
|
||||
; AVX2-LABEL: bitcast_v4f64_0426:
|
||||
; AVX2: # BB#0:
|
||||
; AVX2-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
|
||||
; AVX2-NEXT: vpunpcklqdq {{.*#+}} ymm0 = ymm0[0],ymm1[0],ymm0[2],ymm1[2]
|
||||
; AVX2-NEXT: retq
|
||||
%shuffle64 = shufflevector <4 x double> %a, <4 x double> %b, <4 x i32> <i32 4, i32 0, i32 6, i32 2>
|
||||
%bitcast32 = bitcast <4 x double> %shuffle64 to <8 x float>
|
||||
|
|
|
@ -2088,15 +2088,10 @@ entry:
|
|||
}
|
||||
|
||||
define <8 x i32> @insert_mem_and_zero_v8i32(i32* %ptr) {
|
||||
; AVX1-LABEL: insert_mem_and_zero_v8i32:
|
||||
; AVX1: # BB#0:
|
||||
; AVX1-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
|
||||
; AVX1-NEXT: retq
|
||||
;
|
||||
; AVX2-LABEL: insert_mem_and_zero_v8i32:
|
||||
; AVX2: # BB#0:
|
||||
; AVX2-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
|
||||
; AVX2-NEXT: retq
|
||||
; ALL-LABEL: insert_mem_and_zero_v8i32:
|
||||
; ALL: # BB#0:
|
||||
; ALL-NEXT: vmovd {{.*#+}} xmm0 = mem[0],zero,zero,zero
|
||||
; ALL-NEXT: retq
|
||||
%a = load i32, i32* %ptr
|
||||
%v = insertelement <8 x i32> undef, i32 %a, i32 0
|
||||
%shuffle = shufflevector <8 x i32> %v, <8 x i32> zeroinitializer, <8 x i32> <i32 0, i32 9, i32 10, i32 11, i32 12, i32 13, i32 14, i32 15>
|
||||
|
|
Loading…
Reference in New Issue