[llvm] 97927c3 - [SLP][X86] Add test coverage for Issue #59867

Simon Pilgrim via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 23 13:21:06 PDT 2023


Author: Simon Pilgrim
Date: 2023-04-23T21:20:44+01:00
New Revision: 97927c380f506c8e33a59eb205371171a51c66cf

URL: https://github.com/llvm/llvm-project/commit/97927c380f506c8e33a59eb205371171a51c66cf
DIFF: https://github.com/llvm/llvm-project/commit/97927c380f506c8e33a59eb205371171a51c66cf.diff

LOG: [SLP][X86] Add test coverage for Issue #59867

Added: 
    llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll

Modified: 
    

Removed: 
    


################################################################################
diff  --git a/llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll b/llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll
new file mode 100644
index 0000000000000..25d267f15e9ae
--- /dev/null
+++ b/llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll
@@ -0,0 +1,27 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
+; RUN: opt < %s -passes=slp-vectorizer -S -mtriple=x86_64-unknown -mcpu=x86-64    -S | FileCheck %s
+; RUN: opt < %s -passes=slp-vectorizer -S -mtriple=x86_64-unknown -mcpu=x86-64-v2 -S | FileCheck %s
+; RUN: opt < %s -passes=slp-vectorizer -S -mtriple=x86_64-unknown -mcpu=x86-64-v3 -S | FileCheck %s
+; RUN: opt < %s -passes=slp-vectorizer -S -mtriple=x86_64-unknown -mcpu=x86-64-v4 -S | FileCheck %s
+
+define i1 @PR59867(ptr %s1, ptr %s2) {
+; CHECK-LABEL: @PR59867(
+; CHECK-NEXT:    [[TMP1:%.*]] = load <2 x i8>, ptr [[S1:%.*]], align 1
+; CHECK-NEXT:    [[TMP2:%.*]] = load <2 x i8>, ptr [[S2:%.*]], align 1
+; CHECK-NEXT:    [[TMP3:%.*]] = icmp eq <2 x i8> [[TMP1]], [[TMP2]]
+; CHECK-NEXT:    [[TMP4:%.*]] = extractelement <2 x i1> [[TMP3]], i32 0
+; CHECK-NEXT:    [[TMP5:%.*]] = extractelement <2 x i1> [[TMP3]], i32 1
+; CHECK-NEXT:    [[RES:%.*]] = select i1 [[TMP4]], i1 [[TMP5]], i1 false
+; CHECK-NEXT:    ret i1 [[RES]]
+;
+  %v1.1 = load i8, ptr %s1, align 1
+  %v2.1 = load i8, ptr %s2, align 1
+  %c1 = icmp eq i8 %v1.1, %v2.1
+  %s1.2 = getelementptr inbounds i8, ptr %s1, i64 1
+  %v1.2 = load i8, ptr %s1.2, align 1
+  %s2.2 = getelementptr inbounds i8, ptr %s2, i64 1
+  %v2.2 = load i8, ptr %s2.2, align 1
+  %c2 = icmp eq i8 %v1.2, %v2.2
+  %res = select i1 %c1, i1 %c2, i1 false
+  ret i1 %res
+}


        


More information about the llvm-commits mailing list