From d3c79d195304d5694b47fec7e1e71cab47c2532a Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sun, 21 Jun 2020 20:30:13 -0700 Subject: [PATCH] [X86] Add an AVX check prefix to bitcast-vector-bool.ll to combine checks where AVX1/2/512 are all the same. NFC --- llvm/test/CodeGen/X86/bitcast-vector-bool.ll | 121 +++++++++------------------ 1 file changed, 40 insertions(+), 81 deletions(-) diff --git a/llvm/test/CodeGen/X86/bitcast-vector-bool.ll b/llvm/test/CodeGen/X86/bitcast-vector-bool.ll index fd7594c..a862f73 100644 --- a/llvm/test/CodeGen/X86/bitcast-vector-bool.ll +++ b/llvm/test/CodeGen/X86/bitcast-vector-bool.ll @@ -1,9 +1,9 @@ ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+sse2 | FileCheck %s --check-prefixes=SSE2-SSSE3,SSE2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+ssse3 | FileCheck %s --check-prefixes=SSE2-SSSE3,SSSE3 -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX12,AVX1 -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX12,AVX2 -; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX512 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX12,AVX1 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX12,AVX2 +; RUN: llc < %s -mtriple=x86_64-unknown-unknown -mattr=+avx512f,+avx512vl,+avx512bw | FileCheck %s --check-prefixes=AVX,AVX512 ; ; 128-bit vectors @@ -55,25 +55,15 @@ define i2 @bitcast_v4i32_to_v2i2(<4 x i32> %a0) nounwind { ; SSE2-SSSE3-NEXT: # kill: def $al killed $al killed $eax ; SSE2-SSSE3-NEXT: retq ; -; AVX12-LABEL: bitcast_v4i32_to_v2i2: -; AVX12: # %bb.0: -; AVX12-NEXT: vmovmskps %xmm0, %eax -; AVX12-NEXT: movl %eax, %ecx -; AVX12-NEXT: shrb $2, %cl -; AVX12-NEXT: andb $3, %al -; AVX12-NEXT: addb %cl, %al -; AVX12-NEXT: # kill: def $al killed $al killed $eax -; AVX12-NEXT: retq -; -; AVX512-LABEL: bitcast_v4i32_to_v2i2: -; AVX512: # %bb.0: -; AVX512-NEXT: vmovmskps %xmm0, %eax -; AVX512-NEXT: movl %eax, %ecx -; AVX512-NEXT: shrb $2, %cl -; AVX512-NEXT: andb $3, %al -; AVX512-NEXT: addb %cl, %al -; AVX512-NEXT: # kill: def $al killed $al killed $eax -; AVX512-NEXT: retq +; AVX-LABEL: bitcast_v4i32_to_v2i2: +; AVX: # %bb.0: +; AVX-NEXT: vmovmskps %xmm0, %eax +; AVX-NEXT: movl %eax, %ecx +; AVX-NEXT: shrb $2, %cl +; AVX-NEXT: andb $3, %al +; AVX-NEXT: addb %cl, %al +; AVX-NEXT: # kill: def $al killed $al killed $eax +; AVX-NEXT: retq %1 = icmp slt <4 x i32> %a0, zeroinitializer %2 = bitcast <4 x i1> %1 to <2 x i2> %3 = extractelement <2 x i2> %2, i32 0 @@ -133,23 +123,14 @@ define i8 @bitcast_v16i8_to_v2i8(<16 x i8> %a0) nounwind { ; SSE2-SSSE3-NEXT: addb -{{[0-9]+}}(%rsp), %al ; SSE2-SSSE3-NEXT: retq ; -; AVX12-LABEL: bitcast_v16i8_to_v2i8: -; AVX12: # %bb.0: -; AVX12-NEXT: vpmovmskb %xmm0, %ecx -; AVX12-NEXT: movl %ecx, %eax -; AVX12-NEXT: shrl $8, %eax -; AVX12-NEXT: addb %cl, %al -; AVX12-NEXT: # kill: def $al killed $al killed $eax -; AVX12-NEXT: retq -; -; AVX512-LABEL: bitcast_v16i8_to_v2i8: -; AVX512: # %bb.0: -; AVX512-NEXT: vpmovmskb %xmm0, %ecx -; AVX512-NEXT: movl %ecx, %eax -; AVX512-NEXT: shrl $8, %eax -; AVX512-NEXT: addb %cl, %al -; AVX512-NEXT: # kill: def $al killed $al killed $eax -; AVX512-NEXT: retq +; AVX-LABEL: bitcast_v16i8_to_v2i8: +; AVX: # %bb.0: +; AVX-NEXT: vpmovmskb %xmm0, %ecx +; AVX-NEXT: movl %ecx, %eax +; AVX-NEXT: shrl $8, %eax +; AVX-NEXT: addb %cl, %al +; AVX-NEXT: # kill: def $al killed $al killed $eax +; AVX-NEXT: retq %1 = icmp slt <16 x i8> %a0, zeroinitializer %2 = bitcast <16 x i1> %1 to <2 x i8> %3 = extractelement <2 x i8> %2, i32 0 @@ -174,27 +155,16 @@ define i2 @bitcast_v4i64_to_v2i2(<4 x i64> %a0) nounwind { ; SSE2-SSSE3-NEXT: # kill: def $al killed $al killed $eax ; SSE2-SSSE3-NEXT: retq ; -; AVX12-LABEL: bitcast_v4i64_to_v2i2: -; AVX12: # %bb.0: -; AVX12-NEXT: vmovmskpd %ymm0, %eax -; AVX12-NEXT: movl %eax, %ecx -; AVX12-NEXT: shrb $2, %cl -; AVX12-NEXT: andb $3, %al -; AVX12-NEXT: addb %cl, %al -; AVX12-NEXT: # kill: def $al killed $al killed $eax -; AVX12-NEXT: vzeroupper -; AVX12-NEXT: retq -; -; AVX512-LABEL: bitcast_v4i64_to_v2i2: -; AVX512: # %bb.0: -; AVX512-NEXT: vmovmskpd %ymm0, %eax -; AVX512-NEXT: movl %eax, %ecx -; AVX512-NEXT: shrb $2, %cl -; AVX512-NEXT: andb $3, %al -; AVX512-NEXT: addb %cl, %al -; AVX512-NEXT: # kill: def $al killed $al killed $eax -; AVX512-NEXT: vzeroupper -; AVX512-NEXT: retq +; AVX-LABEL: bitcast_v4i64_to_v2i2: +; AVX: # %bb.0: +; AVX-NEXT: vmovmskpd %ymm0, %eax +; AVX-NEXT: movl %eax, %ecx +; AVX-NEXT: shrb $2, %cl +; AVX-NEXT: andb $3, %al +; AVX-NEXT: addb %cl, %al +; AVX-NEXT: # kill: def $al killed $al killed $eax +; AVX-NEXT: vzeroupper +; AVX-NEXT: retq %1 = icmp slt <4 x i64> %a0, zeroinitializer %2 = bitcast <4 x i1> %1 to <2 x i2> %3 = extractelement <2 x i2> %2, i32 0 @@ -216,27 +186,16 @@ define i4 @bitcast_v8i32_to_v2i4(<8 x i32> %a0) nounwind { ; SSE2-SSSE3-NEXT: # kill: def $al killed $al killed $eax ; SSE2-SSSE3-NEXT: retq ; -; AVX12-LABEL: bitcast_v8i32_to_v2i4: -; AVX12: # %bb.0: -; AVX12-NEXT: vmovmskps %ymm0, %eax -; AVX12-NEXT: movl %eax, %ecx -; AVX12-NEXT: shrb $4, %cl -; AVX12-NEXT: andb $15, %al -; AVX12-NEXT: addb %cl, %al -; AVX12-NEXT: # kill: def $al killed $al killed $eax -; AVX12-NEXT: vzeroupper -; AVX12-NEXT: retq -; -; AVX512-LABEL: bitcast_v8i32_to_v2i4: -; AVX512: # %bb.0: -; AVX512-NEXT: vmovmskps %ymm0, %eax -; AVX512-NEXT: movl %eax, %ecx -; AVX512-NEXT: shrb $4, %cl -; AVX512-NEXT: andb $15, %al -; AVX512-NEXT: addb %cl, %al -; AVX512-NEXT: # kill: def $al killed $al killed $eax -; AVX512-NEXT: vzeroupper -; AVX512-NEXT: retq +; AVX-LABEL: bitcast_v8i32_to_v2i4: +; AVX: # %bb.0: +; AVX-NEXT: vmovmskps %ymm0, %eax +; AVX-NEXT: movl %eax, %ecx +; AVX-NEXT: shrb $4, %cl +; AVX-NEXT: andb $15, %al +; AVX-NEXT: addb %cl, %al +; AVX-NEXT: # kill: def $al killed $al killed $eax +; AVX-NEXT: vzeroupper +; AVX-NEXT: retq %1 = icmp slt <8 x i32> %a0, zeroinitializer %2 = bitcast <8 x i1> %1 to <2 x i4> %3 = extractelement <2 x i4> %2, i32 0 -- 2.7.4