[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / insertelements-with-reused-indices.ll
bloba8160d77619c53cce60a7931cfaa5fac47b6fd11
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -mtriple=x86_64-unknown-linux-gnu --passes=slp-vectorizer < %s | FileCheck %s
4 define void @test() {
5 ; CHECK-LABEL: @test(
6 ; CHECK-NEXT:  entry:
7 ; CHECK-NEXT:    [[TMP0:%.*]] = insertelement <4 x float> undef, float 0.000000e+00, i32 0
8 ; CHECK-NEXT:    [[TMP1:%.*]] = insertelement <4 x float> [[TMP0]], float 0.000000e+00, i32 1
9 ; CHECK-NEXT:    [[TMP2:%.*]] = insertelement <4 x float> [[TMP1]], float 0.000000e+00, i32 0
10 ; CHECK-NEXT:    [[TMP3:%.*]] = insertelement <4 x float> [[TMP2]], float 0.000000e+00, i32 0
11 ; CHECK-NEXT:    [[TMP4:%.*]] = fsub float 0.000000e+00, 0.000000e+00
12 ; CHECK-NEXT:    [[TMP5:%.*]] = insertelement <2 x float> zeroinitializer, float [[TMP4]], i32 0
13 ; CHECK-NEXT:    ret void
15 entry:
16   %0 = fsub float 0.000000e+00, 0.000000e+00
17   %1 = insertelement <4 x float> undef, float %0, i32 0
18   %2 = insertelement <4 x float> %1, float %0, i32 1
19   %3 = fsub float 0.000000e+00, 0.000000e+00
20   %4 = fmul float 0.000000e+00, %3
21   %5 = insertelement <4 x float> %2, float 0.000000e+00, i32 0
22   %6 = insertelement <4 x float> %5, float %4, i32 0
23   %7 = fsub float 0.000000e+00, %0
24   %8 = fsub float %7, %4
25   %9 = insertelement <2 x float> zeroinitializer, float %8, i32 0
26   ret void