[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / reused-extracts.ll
blob1820407daf0785cb865e3f966ced68299dd5a923
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3
2 ; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-pc-windows-msvc19.34.0 < %s | FileCheck %s
4 define void @test() {
5 ; CHECK-LABEL: define void @test() {
6 ; CHECK-NEXT:  entry:
7 ; CHECK-NEXT:    [[TMP0:%.*]] = insertelement <2 x i1> poison, i1 false, i32 0
8 ; CHECK-NEXT:    [[TMP1:%.*]] = load <2 x i64>, ptr getelementptr inbounds ([17 x i64], ptr null, i64 0, i64 9), align 8
9 ; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <2 x i1> [[TMP0]], i1 false, i32 1
10 ; CHECK-NEXT:    [[TMP3:%.*]] = zext <2 x i1> [[TMP2]] to <2 x i64>
11 ; CHECK-NEXT:    [[TMP4:%.*]] = or <2 x i64> [[TMP1]], [[TMP3]]
12 ; CHECK-NEXT:    store <2 x i64> [[TMP4]], ptr getelementptr inbounds ([17 x i64], ptr null, i64 0, i64 9), align 8
13 ; CHECK-NEXT:    ret void
15 entry:
16   %cmp.i.i = fcmp olt float 0.000000e+00, 0.000000e+00
17   %0 = zext i1 %cmp.i.i to i64
18   %pgocount88 = load i64, ptr getelementptr inbounds ([17 x i64], ptr null, i64 0, i64 9), align 8
19   %1 = or i64 %pgocount88, %0
20   store i64 %1, ptr getelementptr inbounds ([17 x i64], ptr null, i64 0, i64 9), align 8
21   %cond.i.i = select i1 %cmp.i.i, float 0.000000e+00, float 0.000000e+00
22   %cmp1.i.i = fcmp ogt float %cond.i.i, 0.000000e+00
23   %2 = zext i1 %cmp1.i.i to i64
24   %pgocount89 = load i64, ptr getelementptr inbounds ([17 x i64], ptr null, i64 0, i64 10), align 8
25   %3 = or i64 %pgocount89, %2
26   store i64 %3, ptr getelementptr inbounds ([17 x i64], ptr null, i64 0, i64 10), align 8
27   %cmp.i9.i = fcmp olt float 0.000000e+00, 0.000000e+00
28   %cond.i10.i = select i1 %cmp.i9.i, float 0.000000e+00, float 0.000000e+00
29   %cmp1.i11.i = fcmp ogt float %cond.i10.i, 0.000000e+00
30   %cmp.i14.i = fcmp olt float 0.000000e+00, 0.000000e+00
31   %cond.i15.i = select i1 %cmp.i14.i, float 0.000000e+00, float 0.000000e+00
32   %cmp1.i16.i = fcmp ogt float %cond.i15.i, 0.000000e+00
33   %cmp.i19.i = fcmp olt float 0.000000e+00, 0.000000e+00
34   %cond.i20.i = select i1 %cmp.i19.i, float 0.000000e+00, float 0.000000e+00
35   %cmp1.i21.i = fcmp ogt float %cond.i20.i, 0.000000e+00
36   ret void