From 97927c380f506c8e33a59eb205371171a51c66cf Mon Sep 17 00:00:00 2001 From: Simon Pilgrim Date: Sun, 23 Apr 2023 21:20:44 +0100 Subject: [PATCH] [SLP][X86] Add test coverage for Issue #59867 --- llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll diff --git a/llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll b/llvm/test/Transforms/SLPVectorizer/X86/pr59867.ll new file mode 100644 index 0000000..25d267f --- /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 +} -- 2.7.4