diff options
Diffstat (limited to 'test/CodeGen/X86/vector-bitreverse.ll')
| -rw-r--r-- | test/CodeGen/X86/vector-bitreverse.ll | 241 |
1 files changed, 122 insertions, 119 deletions
diff --git a/test/CodeGen/X86/vector-bitreverse.ll b/test/CodeGen/X86/vector-bitreverse.ll index 2fb821555dba5..1e8a693054d1e 100644 --- a/test/CodeGen/X86/vector-bitreverse.ll +++ b/test/CodeGen/X86/vector-bitreverse.ll @@ -8,9 +8,12 @@ ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+xop,+avx | FileCheck %s --check-prefix=ALL --check-prefix=XOP --check-prefix=XOPAVX1 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+xop,+avx2 | FileCheck %s --check-prefix=ALL --check-prefix=XOP --check-prefix=XOPAVX2 +; Make sure we don't crash with avx512bw and xop +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+xop,+avx512bw + define i8 @test_bitreverse_i8(i8 %a) nounwind { ; SSE-LABEL: test_bitreverse_i8: -; SSE: # BB#0: +; SSE: # %bb.0: ; SSE-NEXT: rolb $4, %dil ; SSE-NEXT: movl %edi, %eax ; SSE-NEXT: andb $51, %al @@ -28,7 +31,7 @@ define i8 @test_bitreverse_i8(i8 %a) nounwind { ; SSE-NEXT: retq ; ; AVX-LABEL: test_bitreverse_i8: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: rolb $4, %dil ; AVX-NEXT: movl %edi, %eax ; AVX-NEXT: andb $51, %al @@ -46,11 +49,11 @@ define i8 @test_bitreverse_i8(i8 %a) nounwind { ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_i8: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vmovd %edi, %xmm0 ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: vpextrb $0, %xmm0, %eax -; XOP-NEXT: # kill: %AL<def> %AL<kill> %EAX<kill> +; XOP-NEXT: # kill: def %al killed %al killed %eax ; XOP-NEXT: retq %b = call i8 @llvm.bitreverse.i8(i8 %a) ret i8 %b @@ -58,8 +61,8 @@ define i8 @test_bitreverse_i8(i8 %a) nounwind { define i16 @test_bitreverse_i16(i16 %a) nounwind { ; SSE-LABEL: test_bitreverse_i16: -; SSE: # BB#0: -; SSE-NEXT: # kill: %EDI<def> %EDI<kill> %RDI<def> +; SSE: # %bb.0: +; SSE-NEXT: # kill: def %edi killed %edi def %rdi ; SSE-NEXT: rolw $8, %di ; SSE-NEXT: movl %edi, %eax ; SSE-NEXT: andl $3855, %eax # imm = 0xF0F @@ -77,12 +80,12 @@ define i16 @test_bitreverse_i16(i16 %a) nounwind { ; SSE-NEXT: andl $43690, %eax # imm = 0xAAAA ; SSE-NEXT: shrl %eax ; SSE-NEXT: leal (%rax,%rcx,2), %eax -; SSE-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill> +; SSE-NEXT: # kill: def %ax killed %ax killed %eax ; SSE-NEXT: retq ; ; AVX-LABEL: test_bitreverse_i16: -; AVX: # BB#0: -; AVX-NEXT: # kill: %EDI<def> %EDI<kill> %RDI<def> +; AVX: # %bb.0: +; AVX-NEXT: # kill: def %edi killed %edi def %rdi ; AVX-NEXT: rolw $8, %di ; AVX-NEXT: movl %edi, %eax ; AVX-NEXT: andl $3855, %eax # imm = 0xF0F @@ -100,15 +103,15 @@ define i16 @test_bitreverse_i16(i16 %a) nounwind { ; AVX-NEXT: andl $43690, %eax # imm = 0xAAAA ; AVX-NEXT: shrl %eax ; AVX-NEXT: leal (%rax,%rcx,2), %eax -; AVX-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill> +; AVX-NEXT: # kill: def %ax killed %ax killed %eax ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_i16: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vmovd %edi, %xmm0 ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: vmovd %xmm0, %eax -; XOP-NEXT: # kill: %AX<def> %AX<kill> %EAX<kill> +; XOP-NEXT: # kill: def %ax killed %ax killed %eax ; XOP-NEXT: retq %b = call i16 @llvm.bitreverse.i16(i16 %a) ret i16 %b @@ -116,8 +119,8 @@ define i16 @test_bitreverse_i16(i16 %a) nounwind { define i32 @test_bitreverse_i32(i32 %a) nounwind { ; SSE-LABEL: test_bitreverse_i32: -; SSE: # BB#0: -; SSE-NEXT: # kill: %EDI<def> %EDI<kill> %RDI<def> +; SSE: # %bb.0: +; SSE-NEXT: # kill: def %edi killed %edi def %rdi ; SSE-NEXT: bswapl %edi ; SSE-NEXT: movl %edi, %eax ; SSE-NEXT: andl $252645135, %eax # imm = 0xF0F0F0F @@ -138,8 +141,8 @@ define i32 @test_bitreverse_i32(i32 %a) nounwind { ; SSE-NEXT: retq ; ; AVX-LABEL: test_bitreverse_i32: -; AVX: # BB#0: -; AVX-NEXT: # kill: %EDI<def> %EDI<kill> %RDI<def> +; AVX: # %bb.0: +; AVX-NEXT: # kill: def %edi killed %edi def %rdi ; AVX-NEXT: bswapl %edi ; AVX-NEXT: movl %edi, %eax ; AVX-NEXT: andl $252645135, %eax # imm = 0xF0F0F0F @@ -160,7 +163,7 @@ define i32 @test_bitreverse_i32(i32 %a) nounwind { ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_i32: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vmovd %edi, %xmm0 ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: vmovd %xmm0, %eax @@ -171,7 +174,7 @@ define i32 @test_bitreverse_i32(i32 %a) nounwind { define i64 @test_bitreverse_i64(i64 %a) nounwind { ; SSE-LABEL: test_bitreverse_i64: -; SSE: # BB#0: +; SSE: # %bb.0: ; SSE-NEXT: bswapq %rdi ; SSE-NEXT: movabsq $1085102592571150095, %rax # imm = 0xF0F0F0F0F0F0F0F ; SSE-NEXT: andq %rdi, %rax @@ -195,7 +198,7 @@ define i64 @test_bitreverse_i64(i64 %a) nounwind { ; SSE-NEXT: retq ; ; AVX-LABEL: test_bitreverse_i64: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: bswapq %rdi ; AVX-NEXT: movabsq $1085102592571150095, %rax # imm = 0xF0F0F0F0F0F0F0F ; AVX-NEXT: andq %rdi, %rax @@ -219,7 +222,7 @@ define i64 @test_bitreverse_i64(i64 %a) nounwind { ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_i64: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vmovq %rdi, %xmm0 ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: vmovq %xmm0, %rax @@ -230,7 +233,7 @@ define i64 @test_bitreverse_i64(i64 %a) nounwind { define <16 x i8> @test_bitreverse_v16i8(<16 x i8> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v16i8: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: movdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: pand %xmm1, %xmm2 @@ -259,7 +262,7 @@ define <16 x i8> @test_bitreverse_v16i8(<16 x i8> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v16i8: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSSE3-NEXT: movdqa %xmm0, %xmm2 ; SSSE3-NEXT: pand %xmm1, %xmm2 @@ -274,7 +277,7 @@ define <16 x i8> @test_bitreverse_v16i8(<16 x i8> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX-LABEL: test_bitreverse_v16i8: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2 ; AVX-NEXT: vmovdqa {{.*#+}} xmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] @@ -287,7 +290,7 @@ define <16 x i8> @test_bitreverse_v16i8(<16 x i8> %a) nounwind { ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_v16i8: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: retq %b = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> %a) @@ -296,7 +299,7 @@ define <16 x i8> @test_bitreverse_v16i8(<16 x i8> %a) nounwind { define <8 x i16> @test_bitreverse_v8i16(<8 x i16> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v8i16: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm1, %xmm1 ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15] @@ -334,7 +337,7 @@ define <8 x i16> @test_bitreverse_v8i16(<8 x i16> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v8i16: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: pshufb {{.*#+}} xmm0 = xmm0[1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] ; SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSSE3-NEXT: movdqa %xmm0, %xmm2 @@ -350,7 +353,7 @@ define <8 x i16> @test_bitreverse_v8i16(<8 x i16> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX-LABEL: test_bitreverse_v8i16: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2 @@ -364,7 +367,7 @@ define <8 x i16> @test_bitreverse_v8i16(<8 x i16> %a) nounwind { ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_v8i16: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: retq %b = call <8 x i16> @llvm.bitreverse.v8i16(<8 x i16> %a) @@ -373,7 +376,7 @@ define <8 x i16> @test_bitreverse_v8i16(<8 x i16> %a) nounwind { define <4 x i32> @test_bitreverse_v4i32(<4 x i32> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v4i32: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm1, %xmm1 ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15] @@ -411,7 +414,7 @@ define <4 x i32> @test_bitreverse_v4i32(<4 x i32> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v4i32: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: pshufb {{.*#+}} xmm0 = xmm0[3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12] ; SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSSE3-NEXT: movdqa %xmm0, %xmm2 @@ -427,7 +430,7 @@ define <4 x i32> @test_bitreverse_v4i32(<4 x i32> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX-LABEL: test_bitreverse_v4i32: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12] ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2 @@ -441,7 +444,7 @@ define <4 x i32> @test_bitreverse_v4i32(<4 x i32> %a) nounwind { ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_v4i32: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: retq %b = call <4 x i32> @llvm.bitreverse.v4i32(<4 x i32> %a) @@ -450,7 +453,7 @@ define <4 x i32> @test_bitreverse_v4i32(<4 x i32> %a) nounwind { define <2 x i64> @test_bitreverse_v2i64(<2 x i64> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v2i64: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm1, %xmm1 ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm1[8],xmm2[9],xmm1[9],xmm2[10],xmm1[10],xmm2[11],xmm1[11],xmm2[12],xmm1[12],xmm2[13],xmm1[13],xmm2[14],xmm1[14],xmm2[15],xmm1[15] @@ -490,7 +493,7 @@ define <2 x i64> @test_bitreverse_v2i64(<2 x i64> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v2i64: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: pshufb {{.*#+}} xmm0 = xmm0[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8] ; SSSE3-NEXT: movdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSSE3-NEXT: movdqa %xmm0, %xmm2 @@ -506,7 +509,7 @@ define <2 x i64> @test_bitreverse_v2i64(<2 x i64> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX-LABEL: test_bitreverse_v2i64: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: vpshufb {{.*#+}} xmm0 = xmm0[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8] ; AVX-NEXT: vmovdqa {{.*#+}} xmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX-NEXT: vpand %xmm1, %xmm0, %xmm2 @@ -520,7 +523,7 @@ define <2 x i64> @test_bitreverse_v2i64(<2 x i64> %a) nounwind { ; AVX-NEXT: retq ; ; XOP-LABEL: test_bitreverse_v2i64: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vpperm {{.*}}(%rip), %xmm0, %xmm0, %xmm0 ; XOP-NEXT: retq %b = call <2 x i64> @llvm.bitreverse.v2i64(<2 x i64> %a) @@ -529,7 +532,7 @@ define <2 x i64> @test_bitreverse_v2i64(<2 x i64> %a) nounwind { define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v32i8: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: movdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSE2-NEXT: movdqa %xmm0, %xmm3 ; SSE2-NEXT: pand %xmm2, %xmm3 @@ -586,7 +589,7 @@ define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v32i8: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSSE3-NEXT: movdqa %xmm0, %xmm2 ; SSSE3-NEXT: pand %xmm4, %xmm2 @@ -611,7 +614,7 @@ define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v32i8: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX1-NEXT: vpand %xmm2, %xmm1, %xmm3 @@ -632,7 +635,7 @@ define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v32i8: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] @@ -645,7 +648,7 @@ define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512-LABEL: test_bitreverse_v32i8: -; AVX512: # BB#0: +; AVX512: # %bb.0: ; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512-NEXT: vpand %ymm1, %ymm0, %ymm2 ; AVX512-NEXT: vmovdqa {{.*#+}} ymm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] @@ -658,7 +661,7 @@ define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { ; AVX512-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v32i8: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95] ; XOPAVX1-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -667,7 +670,7 @@ define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v32i8: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm1 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95] ; XOPAVX2-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -680,7 +683,7 @@ define <32 x i8> @test_bitreverse_v32i8(<32 x i8> %a) nounwind { define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v16i16: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm4, %xmm4 ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15] @@ -754,7 +757,7 @@ define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v16i16: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] ; SSSE3-NEXT: pshufb %xmm4, %xmm0 ; SSSE3-NEXT: movdqa {{.*#+}} xmm5 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] @@ -782,7 +785,7 @@ define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v16i16: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] ; AVX1-NEXT: vpshufb %xmm2, %xmm1, %xmm1 @@ -806,7 +809,7 @@ define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v16i16: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14,17,16,19,18,21,20,23,22,25,24,27,26,29,28,31,30] ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2 @@ -820,7 +823,7 @@ define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512-LABEL: test_bitreverse_v16i16: -; AVX512: # BB#0: +; AVX512: # %bb.0: ; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14,17,16,19,18,21,20,23,22,25,24,27,26,29,28,31,30] ; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512-NEXT: vpand %ymm1, %ymm0, %ymm2 @@ -834,7 +837,7 @@ define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { ; AVX512-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v16i16: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [81,80,83,82,85,84,87,86,89,88,91,90,93,92,95,94] ; XOPAVX1-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -843,7 +846,7 @@ define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v16i16: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm1 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [81,80,83,82,85,84,87,86,89,88,91,90,93,92,95,94] ; XOPAVX2-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -856,7 +859,7 @@ define <16 x i16> @test_bitreverse_v16i16(<16 x i16> %a) nounwind { define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v8i32: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm4, %xmm4 ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15] @@ -930,7 +933,7 @@ define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v8i32: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12] ; SSSE3-NEXT: pshufb %xmm4, %xmm0 ; SSSE3-NEXT: movdqa {{.*#+}} xmm5 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] @@ -958,7 +961,7 @@ define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v8i32: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12] ; AVX1-NEXT: vpshufb %xmm2, %xmm1, %xmm1 @@ -982,7 +985,7 @@ define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v8i32: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12,19,18,17,16,23,22,21,20,27,26,25,24,31,30,29,28] ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2 @@ -996,7 +999,7 @@ define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512-LABEL: test_bitreverse_v8i32: -; AVX512: # BB#0: +; AVX512: # %bb.0: ; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12,19,18,17,16,23,22,21,20,27,26,25,24,31,30,29,28] ; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512-NEXT: vpand %ymm1, %ymm0, %ymm2 @@ -1010,7 +1013,7 @@ define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { ; AVX512-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v8i32: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [83,82,81,80,87,86,85,84,91,90,89,88,95,94,93,92] ; XOPAVX1-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -1019,7 +1022,7 @@ define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v8i32: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm1 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [83,82,81,80,87,86,85,84,91,90,89,88,95,94,93,92] ; XOPAVX2-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -1032,7 +1035,7 @@ define <8 x i32> @test_bitreverse_v8i32(<8 x i32> %a) nounwind { define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v4i64: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm4, %xmm4 ; SSE2-NEXT: movdqa %xmm0, %xmm2 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm2 = xmm2[8],xmm4[8],xmm2[9],xmm4[9],xmm2[10],xmm4[10],xmm2[11],xmm4[11],xmm2[12],xmm4[12],xmm2[13],xmm4[13],xmm2[14],xmm4[14],xmm2[15],xmm4[15] @@ -1110,7 +1113,7 @@ define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v4i64: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa {{.*#+}} xmm4 = [7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8] ; SSSE3-NEXT: pshufb %xmm4, %xmm0 ; SSSE3-NEXT: movdqa {{.*#+}} xmm5 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] @@ -1138,7 +1141,7 @@ define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v4i64: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8] ; AVX1-NEXT: vpshufb %xmm2, %xmm1, %xmm1 @@ -1162,7 +1165,7 @@ define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v4i64: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,23,22,21,20,19,18,17,16,31,30,29,28,27,26,25,24] ; AVX2-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX2-NEXT: vpand %ymm1, %ymm0, %ymm2 @@ -1176,7 +1179,7 @@ define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512-LABEL: test_bitreverse_v4i64: -; AVX512: # BB#0: +; AVX512: # %bb.0: ; AVX512-NEXT: vpshufb {{.*#+}} ymm0 = ymm0[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,23,22,21,20,19,18,17,16,31,30,29,28,27,26,25,24] ; AVX512-NEXT: vmovdqa {{.*#+}} ymm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512-NEXT: vpand %ymm1, %ymm0, %ymm2 @@ -1190,7 +1193,7 @@ define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { ; AVX512-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v4i64: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm1 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm2 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88] ; XOPAVX1-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -1199,7 +1202,7 @@ define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v4i64: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm1 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm2 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88] ; XOPAVX2-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm1 @@ -1212,7 +1215,7 @@ define <4 x i64> @test_bitreverse_v4i64(<4 x i64> %a) nounwind { define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v64i8: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: movdqa {{.*#+}} xmm13 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSE2-NEXT: movdqa %xmm0, %xmm5 ; SSE2-NEXT: pand %xmm13, %xmm5 @@ -1315,7 +1318,7 @@ define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v64i8: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa %xmm0, %xmm5 ; SSSE3-NEXT: movdqa {{.*#+}} xmm8 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; SSSE3-NEXT: pand %xmm8, %xmm0 @@ -1359,7 +1362,7 @@ define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v64i8: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX1-NEXT: vpand %xmm3, %xmm2, %xmm4 @@ -1394,7 +1397,7 @@ define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v64i8: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX2-NEXT: vpand %ymm2, %ymm0, %ymm3 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm4 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] @@ -1413,7 +1416,7 @@ define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512F-LABEL: test_bitreverse_v64i8: -; AVX512F: # BB#0: +; AVX512F: # %bb.0: ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512F-NEXT: vpand %ymm2, %ymm0, %ymm3 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm4 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] @@ -1432,20 +1435,20 @@ define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { ; AVX512F-NEXT: retq ; ; AVX512BW-LABEL: test_bitreverse_v64i8: -; AVX512BW: # BB#0: +; AVX512BW: # %bb.0: ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] ; AVX512BW-NEXT: vpshufb %zmm2, %zmm3, %zmm2 ; AVX512BW-NEXT: vpsrlw $4, %zmm0, %zmm0 ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm0 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] ; AVX512BW-NEXT: vpshufb %zmm0, %zmm1, %zmm0 ; AVX512BW-NEXT: vporq %zmm0, %zmm2, %zmm0 ; AVX512BW-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v64i8: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95] ; XOPAVX1-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -1458,7 +1461,7 @@ define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v64i8: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm2 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95] ; XOPAVX2-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -1475,7 +1478,7 @@ define <64 x i8> @test_bitreverse_v64i8(<64 x i8> %a) nounwind { define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v32i16: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm14, %xmm14 ; SSE2-NEXT: movdqa %xmm0, %xmm4 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm14[8],xmm4[9],xmm14[9],xmm4[10],xmm14[10],xmm4[11],xmm14[11],xmm4[12],xmm14[12],xmm4[13],xmm14[13],xmm4[14],xmm14[14],xmm4[15],xmm14[15] @@ -1611,7 +1614,7 @@ define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v32i16: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa %xmm1, %xmm5 ; SSSE3-NEXT: movdqa %xmm0, %xmm1 ; SSSE3-NEXT: movdqa {{.*#+}} xmm8 = [1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] @@ -1661,7 +1664,7 @@ define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v32i16: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] ; AVX1-NEXT: vpshufb %xmm3, %xmm2, %xmm2 @@ -1701,7 +1704,7 @@ define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v32i16: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14,1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] ; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm0 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] @@ -1723,7 +1726,7 @@ define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512F-LABEL: test_bitreverse_v32i16: -; AVX512F: # BB#0: +; AVX512F: # %bb.0: ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm2 = [1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14,1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14] ; AVX512F-NEXT: vpshufb %ymm2, %ymm0, %ymm0 ; AVX512F-NEXT: vmovdqa {{.*#+}} ymm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] @@ -1745,21 +1748,21 @@ define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { ; AVX512F-NEXT: retq ; ; AVX512BW-LABEL: test_bitreverse_v32i16: -; AVX512BW: # BB#0: +; AVX512BW: # %bb.0: ; AVX512BW-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[1,0,3,2,5,4,7,6,9,8,11,10,13,12,15,14,17,16,19,18,21,20,23,22,25,24,27,26,29,28,31,30,33,32,35,34,37,36,39,38,41,40,43,42,45,44,47,46,49,48,51,50,53,52,55,54,57,56,59,58,61,60,63,62] ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] ; AVX512BW-NEXT: vpshufb %zmm2, %zmm3, %zmm2 ; AVX512BW-NEXT: vpsrlw $4, %zmm0, %zmm0 ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm0 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] ; AVX512BW-NEXT: vpshufb %zmm0, %zmm1, %zmm0 ; AVX512BW-NEXT: vporq %zmm0, %zmm2, %zmm0 ; AVX512BW-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v32i16: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [81,80,83,82,85,84,87,86,89,88,91,90,93,92,95,94] ; XOPAVX1-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -1772,7 +1775,7 @@ define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v32i16: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm2 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [81,80,83,82,85,84,87,86,89,88,91,90,93,92,95,94] ; XOPAVX2-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -1789,7 +1792,7 @@ define <32 x i16> @test_bitreverse_v32i16(<32 x i16> %a) nounwind { define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v16i32: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm14, %xmm14 ; SSE2-NEXT: movdqa %xmm0, %xmm4 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm14[8],xmm4[9],xmm14[9],xmm4[10],xmm14[10],xmm4[11],xmm14[11],xmm4[12],xmm14[12],xmm4[13],xmm14[13],xmm4[14],xmm14[14],xmm4[15],xmm14[15] @@ -1925,7 +1928,7 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v16i32: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa %xmm1, %xmm5 ; SSSE3-NEXT: movdqa %xmm0, %xmm1 ; SSSE3-NEXT: movdqa {{.*#+}} xmm8 = [3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12] @@ -1975,7 +1978,7 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v16i32: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12] ; AVX1-NEXT: vpshufb %xmm3, %xmm2, %xmm2 @@ -2015,7 +2018,7 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v16i32: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12,3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12] ; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm0 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] @@ -2037,7 +2040,7 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512F-LABEL: test_bitreverse_v16i32: -; AVX512F: # BB#0: +; AVX512F: # %bb.0: ; AVX512F-NEXT: vpsrld $24, %zmm0, %zmm1 ; AVX512F-NEXT: vpsrld $8, %zmm0, %zmm2 ; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm2, %zmm2 @@ -2051,35 +2054,35 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { ; AVX512F-NEXT: vpslld $4, %zmm1, %zmm1 ; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm0, %zmm0 ; AVX512F-NEXT: vpsrld $4, %zmm0, %zmm0 -; AVX512F-NEXT: vpord %zmm1, %zmm0, %zmm0 +; AVX512F-NEXT: vporq %zmm1, %zmm0, %zmm0 ; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm0, %zmm1 ; AVX512F-NEXT: vpslld $2, %zmm1, %zmm1 ; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm0, %zmm0 ; AVX512F-NEXT: vpsrld $2, %zmm0, %zmm0 -; AVX512F-NEXT: vpord %zmm1, %zmm0, %zmm0 +; AVX512F-NEXT: vporq %zmm1, %zmm0, %zmm0 ; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm0, %zmm1 ; AVX512F-NEXT: vpslld $1, %zmm1, %zmm1 ; AVX512F-NEXT: vpandd {{.*}}(%rip){1to16}, %zmm0, %zmm0 ; AVX512F-NEXT: vpsrld $1, %zmm0, %zmm0 -; AVX512F-NEXT: vpord %zmm1, %zmm0, %zmm0 +; AVX512F-NEXT: vporq %zmm1, %zmm0, %zmm0 ; AVX512F-NEXT: retq ; ; AVX512BW-LABEL: test_bitreverse_v16i32: -; AVX512BW: # BB#0: +; AVX512BW: # %bb.0: ; AVX512BW-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[3,2,1,0,7,6,5,4,11,10,9,8,15,14,13,12,19,18,17,16,23,22,21,20,27,26,25,24,31,30,29,28,35,34,33,32,39,38,37,36,43,42,41,40,47,46,45,44,51,50,49,48,55,54,53,52,59,58,57,56,63,62,61,60] ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] ; AVX512BW-NEXT: vpshufb %zmm2, %zmm3, %zmm2 ; AVX512BW-NEXT: vpsrlw $4, %zmm0, %zmm0 ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm0 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] ; AVX512BW-NEXT: vpshufb %zmm0, %zmm1, %zmm0 ; AVX512BW-NEXT: vporq %zmm0, %zmm2, %zmm0 ; AVX512BW-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v16i32: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [83,82,81,80,87,86,85,84,91,90,89,88,95,94,93,92] ; XOPAVX1-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -2092,7 +2095,7 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v16i32: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm2 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [83,82,81,80,87,86,85,84,91,90,89,88,95,94,93,92] ; XOPAVX2-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -2109,7 +2112,7 @@ define <16 x i32> @test_bitreverse_v16i32(<16 x i32> %a) nounwind { define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { ; SSE2-LABEL: test_bitreverse_v8i64: -; SSE2: # BB#0: +; SSE2: # %bb.0: ; SSE2-NEXT: pxor %xmm14, %xmm14 ; SSE2-NEXT: movdqa %xmm0, %xmm4 ; SSE2-NEXT: punpckhbw {{.*#+}} xmm4 = xmm4[8],xmm14[8],xmm4[9],xmm14[9],xmm4[10],xmm14[10],xmm4[11],xmm14[11],xmm4[12],xmm14[12],xmm4[13],xmm14[13],xmm4[14],xmm14[14],xmm4[15],xmm14[15] @@ -2253,7 +2256,7 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { ; SSE2-NEXT: retq ; ; SSSE3-LABEL: test_bitreverse_v8i64: -; SSSE3: # BB#0: +; SSSE3: # %bb.0: ; SSSE3-NEXT: movdqa %xmm1, %xmm5 ; SSSE3-NEXT: movdqa %xmm0, %xmm1 ; SSSE3-NEXT: movdqa {{.*#+}} xmm8 = [7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8] @@ -2303,7 +2306,7 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { ; SSSE3-NEXT: retq ; ; AVX1-LABEL: test_bitreverse_v8i64: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; AVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8] ; AVX1-NEXT: vpshufb %xmm3, %xmm2, %xmm2 @@ -2343,7 +2346,7 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { ; AVX1-NEXT: retq ; ; AVX2-LABEL: test_bitreverse_v8i64: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vmovdqa {{.*#+}} ymm2 = [7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8] ; AVX2-NEXT: vpshufb %ymm2, %ymm0, %ymm0 ; AVX2-NEXT: vmovdqa {{.*#+}} ymm3 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] @@ -2365,7 +2368,7 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { ; AVX2-NEXT: retq ; ; AVX512F-LABEL: test_bitreverse_v8i64: -; AVX512F: # BB#0: +; AVX512F: # %bb.0: ; AVX512F-NEXT: vpsrlq $56, %zmm0, %zmm1 ; AVX512F-NEXT: vpsrlq $40, %zmm0, %zmm2 ; AVX512F-NEXT: vpandq {{.*}}(%rip){1to8}, %zmm2, %zmm2 @@ -2405,21 +2408,21 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { ; AVX512F-NEXT: retq ; ; AVX512BW-LABEL: test_bitreverse_v8i64: -; AVX512BW: # BB#0: +; AVX512BW: # %bb.0: ; AVX512BW-NEXT: vpshufb {{.*#+}} zmm0 = zmm0[7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8,23,22,21,20,19,18,17,16,31,30,29,28,27,26,25,24,39,38,37,36,35,34,33,32,47,46,45,44,43,42,41,40,55,54,53,52,51,50,49,48,63,62,61,60,59,58,57,56] ; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15] ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm2 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm3 = [0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240,0,128,64,192,32,160,96,224,16,144,80,208,48,176,112,240] ; AVX512BW-NEXT: vpshufb %zmm2, %zmm3, %zmm2 ; AVX512BW-NEXT: vpsrlw $4, %zmm0, %zmm0 ; AVX512BW-NEXT: vpandq %zmm1, %zmm0, %zmm0 -; AVX512BW-NEXT: vmovdqu8 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] +; AVX512BW-NEXT: vmovdqa64 {{.*#+}} zmm1 = [0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15,0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15] ; AVX512BW-NEXT: vpshufb %zmm0, %zmm1, %zmm0 ; AVX512BW-NEXT: vporq %zmm0, %zmm2, %zmm0 ; AVX512BW-NEXT: retq ; ; XOPAVX1-LABEL: test_bitreverse_v8i64: -; XOPAVX1: # BB#0: +; XOPAVX1: # %bb.0: ; XOPAVX1-NEXT: vextractf128 $1, %ymm0, %xmm2 ; XOPAVX1-NEXT: vmovdqa {{.*#+}} xmm3 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88] ; XOPAVX1-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -2432,7 +2435,7 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { ; XOPAVX1-NEXT: retq ; ; XOPAVX2-LABEL: test_bitreverse_v8i64: -; XOPAVX2: # BB#0: +; XOPAVX2: # %bb.0: ; XOPAVX2-NEXT: vextracti128 $1, %ymm0, %xmm2 ; XOPAVX2-NEXT: vmovdqa {{.*#+}} xmm3 = [87,86,85,84,83,82,81,80,95,94,93,92,91,90,89,88] ; XOPAVX2-NEXT: vpperm %xmm3, %xmm2, %xmm0, %xmm2 @@ -2453,7 +2456,7 @@ define <8 x i64> @test_bitreverse_v8i64(<8 x i64> %a) nounwind { define i32 @fold_bitreverse_i32() nounwind { ; ALL-LABEL: fold_bitreverse_i32: -; ALL: # BB#0: +; ALL: # %bb.0: ; ALL-NEXT: movl $16711935, %eax # imm = 0xFF00FF ; ALL-NEXT: retq %b = call i32 @llvm.bitreverse.i32(i32 4278255360) @@ -2462,17 +2465,17 @@ define i32 @fold_bitreverse_i32() nounwind { define <16 x i8> @fold_bitreverse_v16i8() nounwind { ; SSE-LABEL: fold_bitreverse_v16i8: -; SSE: # BB#0: +; SSE: # %bb.0: ; SSE-NEXT: movaps {{.*#+}} xmm0 = [0,255,64,191,32,223,96,159,16,239,80,175,48,207,112,143] ; SSE-NEXT: retq ; ; AVX-LABEL: fold_bitreverse_v16i8: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: vmovaps {{.*#+}} xmm0 = [0,255,64,191,32,223,96,159,16,239,80,175,48,207,112,143] ; AVX-NEXT: retq ; ; XOP-LABEL: fold_bitreverse_v16i8: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vmovaps {{.*#+}} xmm0 = [0,255,64,191,32,223,96,159,16,239,80,175,48,207,112,143] ; XOP-NEXT: retq %b = call <16 x i8> @llvm.bitreverse.v16i8(<16 x i8> <i8 0, i8 -1, i8 2, i8 -3, i8 4, i8 -5, i8 6, i8 -7, i8 8, i8 -9, i8 10, i8 -11, i8 12, i8 -13, i8 14, i8 -15>) @@ -2481,18 +2484,18 @@ define <16 x i8> @fold_bitreverse_v16i8() nounwind { define <16 x i16> @fold_bitreverse_v16i16() nounwind { ; SSE-LABEL: fold_bitreverse_v16i16: -; SSE: # BB#0: +; SSE: # %bb.0: ; SSE-NEXT: movaps {{.*#+}} xmm0 = [0,65535,16384,49151,8192,57343,24576,40959] ; SSE-NEXT: movaps {{.*#+}} xmm1 = [4096,61439,20480,45055,12288,53247,28672,36863] ; SSE-NEXT: retq ; ; AVX-LABEL: fold_bitreverse_v16i16: -; AVX: # BB#0: +; AVX: # %bb.0: ; AVX-NEXT: vmovaps {{.*#+}} ymm0 = [0,65535,16384,49151,8192,57343,24576,40959,4096,61439,20480,45055,12288,53247,28672,36863] ; AVX-NEXT: retq ; ; XOP-LABEL: fold_bitreverse_v16i16: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vmovaps {{.*#+}} ymm0 = [0,65535,16384,49151,8192,57343,24576,40959,4096,61439,20480,45055,12288,53247,28672,36863] ; XOP-NEXT: retq %b = call <16 x i16> @llvm.bitreverse.v16i16(<16 x i16> <i16 0, i16 -1, i16 2, i16 -3, i16 4, i16 -5, i16 6, i16 -7, i16 8, i16 -9, i16 10, i16 -11, i16 12, i16 -13, i16 14, i16 -15>) @@ -2501,7 +2504,7 @@ define <16 x i16> @fold_bitreverse_v16i16() nounwind { define <16 x i32> @fold_bitreverse_v16i32() nounwind { ; SSE-LABEL: fold_bitreverse_v16i32: -; SSE: # BB#0: +; SSE: # %bb.0: ; SSE-NEXT: movaps {{.*#+}} xmm0 = [0,4294967295,1073741824,3221225471] ; SSE-NEXT: movaps {{.*#+}} xmm1 = [536870912,3758096383,1610612736,2684354559] ; SSE-NEXT: movaps {{.*#+}} xmm2 = [268435456,4026531839,1342177280,2952790015] @@ -2509,24 +2512,24 @@ define <16 x i32> @fold_bitreverse_v16i32() nounwind { ; SSE-NEXT: retq ; ; AVX1-LABEL: fold_bitreverse_v16i32: -; AVX1: # BB#0: +; AVX1: # %bb.0: ; AVX1-NEXT: vmovaps {{.*#+}} ymm0 = [0,4294967295,1073741824,3221225471,536870912,3758096383,1610612736,2684354559] ; AVX1-NEXT: vmovaps {{.*#+}} ymm1 = [268435456,4026531839,1342177280,2952790015,805306368,3489660927,1879048192,2415919103] ; AVX1-NEXT: retq ; ; AVX2-LABEL: fold_bitreverse_v16i32: -; AVX2: # BB#0: +; AVX2: # %bb.0: ; AVX2-NEXT: vmovaps {{.*#+}} ymm0 = [0,4294967295,1073741824,3221225471,536870912,3758096383,1610612736,2684354559] ; AVX2-NEXT: vmovaps {{.*#+}} ymm1 = [268435456,4026531839,1342177280,2952790015,805306368,3489660927,1879048192,2415919103] ; AVX2-NEXT: retq ; ; AVX512-LABEL: fold_bitreverse_v16i32: -; AVX512: # BB#0: +; AVX512: # %bb.0: ; AVX512-NEXT: vmovaps {{.*#+}} zmm0 = [0,4294967295,1073741824,3221225471,536870912,3758096383,1610612736,2684354559,268435456,4026531839,1342177280,2952790015,805306368,3489660927,1879048192,2415919103] ; AVX512-NEXT: retq ; ; XOP-LABEL: fold_bitreverse_v16i32: -; XOP: # BB#0: +; XOP: # %bb.0: ; XOP-NEXT: vmovaps {{.*#+}} ymm0 = [0,4294967295,1073741824,3221225471,536870912,3758096383,1610612736,2684354559] ; XOP-NEXT: vmovaps {{.*#+}} ymm1 = [268435456,4026531839,1342177280,2952790015,805306368,3489660927,1879048192,2415919103] ; XOP-NEXT: retq |
