[llvm] d3d71b8 - [X86] Add shuffle tests cases showing missed opportunity to use VALIGN
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 30 10:34:05 PDT 2023
Author: Simon Pilgrim
Date: 2023-08-30T18:32:55+01:00
New Revision: d3d71b8d5be8d8c2f494044099f9a44ffe18c878
URL: https://github.com/llvm/llvm-project/commit/d3d71b8d5be8d8c2f494044099f9a44ffe18c878
DIFF: https://github.com/llvm/llvm-project/commit/d3d71b8d5be8d8c2f494044099f9a44ffe18c878.diff
LOG: [X86] Add shuffle tests cases showing missed opportunity to use VALIGN
Added:
Modified:
llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll b/llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
index 96ba108716fa2c..6069b3f834d71d 100644
--- a/llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
+++ b/llvm/test/CodeGen/X86/vector-shuffle-512-v8.ll
@@ -1664,6 +1664,35 @@ define <8 x i64> @shuffle_v8i64_6caa87e5(<8 x i64> %a, <8 x i64> %b) {
ret <8 x i64> %shuffle
}
+define <8 x i64> @shuffle_v8i64_34567zzz(<8 x i64> %a, <8 x i64> %b) {
+; AVX512F-LABEL: shuffle_v8i64_34567zzz:
+; AVX512F: # %bb.0:
+; AVX512F-NEXT: vpxor %xmm1, %xmm1, %xmm1
+; AVX512F-NEXT: vmovdqa64 {{.*#+}} zmm2 = [3,4,5,6,7,13,14,15]
+; AVX512F-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
+; AVX512F-NEXT: retq
+;
+; AVX512F-32-LABEL: shuffle_v8i64_34567zzz:
+; AVX512F-32: # %bb.0:
+; AVX512F-32-NEXT: vpxor %xmm1, %xmm1, %xmm1
+; AVX512F-32-NEXT: vmovdqa64 {{.*#+}} zmm2 = [3,0,4,0,5,0,6,0,7,0,13,0,14,0,15,0]
+; AVX512F-32-NEXT: vpermt2q %zmm1, %zmm2, %zmm0
+; AVX512F-32-NEXT: retl
+ %valign = shufflevector <8 x i64> %a, <8 x i64> zeroinitializer, <8 x i32> <i32 3, i32 4, i32 5, i32 6, i32 7, i32 8, i32 8, i32 8>
+ ret <8 x i64> %valign
+}
+
+define <8 x i64> @shuffle_v8i64_zz012345(<8 x i64> %a, <8 x i64> %b) {
+; ALL-LABEL: shuffle_v8i64_zz012345:
+; ALL: # %bb.0:
+; ALL-NEXT: movb $-4, %al
+; ALL-NEXT: kmovw %eax, %k1
+; ALL-NEXT: vpexpandq %zmm0, %zmm0 {%k1} {z}
+; ALL-NEXT: ret{{[l|q]}}
+ %valign = shufflevector <8 x i64> %a, <8 x i64> zeroinitializer, <8 x i32> <i32 8, i32 8, i32 0, i32 1, i32 2, i32 3, i32 4, i32 5>
+ ret <8 x i64> %valign
+}
+
define <8 x double> @shuffle_v8f64_082a4c6e(<8 x double> %a, <8 x double> %b) {
; ALL-LABEL: shuffle_v8f64_082a4c6e:
; ALL: # %bb.0:
More information about the llvm-commits
mailing list