60 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 52; RUN: opt -S --passes=slp-vectorizer -mtriple=x86_64-unknown-linux-gnu -mcpu=haswell < %s | FileCheck %s3 4define void @test(float %0) {5; CHECK-LABEL: define void @test(6; CHECK-SAME: float [[TMP0:%.*]]) #[[ATTR0:[0-9]+]] {7; CHECK-NEXT: [[TMP4:%.*]] = insertelement <2 x float> <float poison, float 0.000000e+00>, float [[TMP0]], i32 08; CHECK-NEXT: [[TMP6:%.*]] = shufflevector <2 x float> [[TMP4]], <2 x float> <float 0.000000e+00, float poison>, <2 x i32> <i32 2, i32 0>9; CHECK-NEXT: [[TMP5:%.*]] = fdiv <2 x float> [[TMP4]], zeroinitializer10; CHECK-NEXT: [[TMP3:%.*]] = fdiv <2 x float> [[TMP6]], zeroinitializer11; CHECK-NEXT: br label %[[BB6:.*]]12; CHECK: [[BB6]]:13; CHECK-NEXT: [[TMP7:%.*]] = fmul <2 x float> [[TMP5]], zeroinitializer14; CHECK-NEXT: [[TMP8:%.*]] = fsub <2 x float> zeroinitializer, [[TMP7]]15; CHECK-NEXT: br label %[[BB10:.*]]16; CHECK: [[BB9:.*]]:17; CHECK-NEXT: br label %[[BB10]]18; CHECK: [[BB10]]:19; CHECK-NEXT: [[TMP11:%.*]] = phi <2 x float> [ [[TMP8]], %[[BB6]] ], [ poison, %[[BB9]] ]20; CHECK-NEXT: br label %[[BB12:.*]]21; CHECK: [[BB12]]:22; CHECK-NEXT: [[TMP13:%.*]] = fmul <2 x float> [[TMP3]], zeroinitializer23; CHECK-NEXT: [[TMP14:%.*]] = fsub <2 x float> [[TMP11]], [[TMP13]]24; CHECK-NEXT: [[TMP15:%.*]] = extractelement <2 x float> [[TMP14]], i32 025; CHECK-NEXT: [[TMP16:%.*]] = extractelement <2 x float> [[TMP14]], i32 126; CHECK-NEXT: [[TMP17:%.*]] = fadd float [[TMP15]], [[TMP16]]27; CHECK-NEXT: [[TMP18:%.*]] = call float @llvm.fabs.f32(float [[TMP17]])28; CHECK-NEXT: ret void29;30 %2 = fdiv float 0.000000e+00, 0.000000e+0031 %3 = fdiv float 0.000000e+00, 0.000000e+0032 %4 = fdiv float %0, 0.000000e+0033 br label %534 355:36 %6 = fmul float %4, 0.000000e+0037 %7 = fsub float 0.000000e+00, %638 %8 = fmul float %3, 0.000000e+0039 %9 = fsub float 0.000000e+00, %840 br label %1141 4210:43 br label %1144 4511:46 %12 = phi float [ %7, %5 ], [ 0.000000e+00, %10 ]47 %13 = phi float [ %9, %5 ], [ 0.000000e+00, %10 ]48 br label %1449 5014:51 %15 = fmul float %2, 0.000000e+0052 %16 = fsub float %12, %1553 %17 = fmul float %4, 0.000000e+0054 %18 = fsub float %13, %1755 %19 = fadd float %16, %1856 %20 = call float @llvm.fabs.f32(float %19)57 ret void58}59 60