58 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 42; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -mcpu=znver2 < %s | FileCheck %s3 4define void @test() {5; CHECK-LABEL: define void @test(6; CHECK-SAME: ) #[[ATTR0:[0-9]+]] {7; CHECK-NEXT: bb:8; CHECK-NEXT: br label [[BB1:%.*]]9; CHECK: bb1:10; CHECK-NEXT: [[PHI:%.*]] = phi i32 [ 0, [[BB:%.*]] ], [ [[TMP2:%.*]], [[BB1]] ]11; CHECK-NEXT: [[TMP0:%.*]] = phi <2 x i32> [ zeroinitializer, [[BB]] ], [ [[TMP3:%.*]], [[BB1]] ]12; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x i32> [[TMP0]], <2 x i32> poison, <32 x i32> <i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>13; CHECK-NEXT: [[TMP2]] = call i32 @llvm.vector.reduce.mul.v32i32(<32 x i32> [[TMP1]])14; CHECK-NEXT: [[TMP3]] = shufflevector <2 x i32> [[TMP0]], <2 x i32> poison, <2 x i32> <i32 1, i32 0>15; CHECK-NEXT: br label [[BB1]]16;17bb:18 br label %bb119 20bb1:21 %phi = phi i32 [ 0, %bb ], [ %mul33, %bb1 ]22 %phi2 = phi i32 [ 0, %bb ], [ %phi3, %bb1 ]23 %phi3 = phi i32 [ 0, %bb ], [ %phi2, %bb1 ]24 %mul = mul i32 %phi2, %phi225 %mul4 = mul i32 %phi3, %mul26 %mul5 = mul i32 %phi2, %mul427 %mul6 = mul i32 %phi3, %mul528 %mul7 = mul i32 %phi2, %mul629 %mul8 = mul i32 %phi3, %mul730 %mul9 = mul i32 %phi2, %mul831 %mul10 = mul i32 %phi3, %mul932 %mul11 = mul i32 %phi2, %mul1033 %mul12 = mul i32 %phi3, %mul1134 %mul13 = mul i32 %phi2, %mul1235 %mul14 = mul i32 %phi3, %mul1336 %mul15 = mul i32 %phi2, %mul1437 %mul16 = mul i32 %phi3, %mul1538 %mul17 = mul i32 %phi2, %mul1639 %mul18 = mul i32 %phi3, %mul1740 %mul19 = mul i32 %phi2, %mul1841 %mul20 = mul i32 %phi3, %mul1942 %mul21 = mul i32 %phi2, %mul2043 %mul22 = mul i32 %phi3, %mul2144 %mul23 = mul i32 %phi2, %mul2245 %mul24 = mul i32 %phi3, %mul2346 %mul25 = mul i32 %phi2, %mul2447 %mul26 = mul i32 %phi3, %mul2548 %mul27 = mul i32 %phi2, %mul2649 %mul28 = mul i32 %phi3, %mul2750 %mul29 = mul i32 %phi2, %mul2851 %mul30 = mul i32 %phi3, %mul2952 %mul31 = mul i32 %phi2, %mul3053 %mul32 = mul i32 %phi3, %mul3154 %mul33 = mul i32 %phi2, %mul3255 br label %bb156}57 58