47 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 < %s | FileCheck %s3 4define void @test({ <2 x float>, float } %0, <2 x float> %1, i1 %2) {5; CHECK-LABEL: define void @test(6; CHECK-SAME: { <2 x float>, float } [[TMP0:%.*]], <2 x float> [[TMP1:%.*]], i1 [[TMP2:%.*]]) {7; CHECK-NEXT: [[TMP4:%.*]] = extractvalue { <2 x float>, float } [[TMP0]], 08; CHECK-NEXT: [[TMP5:%.*]] = extractelement <2 x float> [[TMP4]], i64 09; CHECK-NEXT: [[TMP6:%.*]] = extractelement <2 x float> [[TMP1]], i64 110; CHECK-NEXT: [[TMP7:%.*]] = extractelement <2 x float> [[TMP1]], i64 011; CHECK-NEXT: br i1 [[TMP2]], label %[[BB9:.*]], label %[[BB8:.*]]12; CHECK: [[BB8]]:13; CHECK-NEXT: br label %[[BB9]]14; CHECK: [[BB9]]:15; CHECK-NEXT: [[TMP10:%.*]] = phi float [ 0.000000e+00, %[[BB8]] ], [ [[TMP7]], [[TMP3:%.*]] ]16; CHECK-NEXT: [[TMP11:%.*]] = phi float [ 0.000000e+00, %[[BB8]] ], [ [[TMP6]], [[TMP3]] ]17; CHECK-NEXT: [[TMP12:%.*]] = phi float [ 0.000000e+00, %[[BB8]] ], [ [[TMP5]], [[TMP3]] ]18; CHECK-NEXT: [[TMP13:%.*]] = fpext float [[TMP12]] to double19; CHECK-NEXT: [[TMP14:%.*]] = fpext float [[TMP11]] to double20; CHECK-NEXT: [[TMP15:%.*]] = tail call i32 (ptr, ptr, ...) @fprintf(ptr null, ptr null, double [[TMP13]], double [[TMP14]], double 0.000000e+00)21; CHECK-NEXT: [[TMP16:%.*]] = fpext float [[TMP10]] to double22; CHECK-NEXT: [[TMP17:%.*]] = tail call i32 (ptr, ptr, ...) @fprintf(ptr null, ptr null, double 0.000000e+00, double [[TMP16]], double 0.000000e+00)23; CHECK-NEXT: ret void24;25 %4 = extractvalue { <2 x float>, float } %0, 026 %5 = extractelement <2 x float> %4, i64 027 %6 = extractelement <2 x float> %1, i64 128 %7 = extractelement <2 x float> %1, i64 029 br i1 %2, label %9, label %830 318:32 br label %933 349:35 %10 = phi float [ 0.000000e+00, %8 ], [ %7, %3 ]36 %11 = phi float [ 0.000000e+00, %8 ], [ %6, %3 ]37 %12 = phi float [ 0.000000e+00, %8 ], [ %5, %3 ]38 %13 = fpext float %12 to double39 %14 = fpext float %11 to double40 %15 = tail call i32 (ptr, ptr, ...) @fprintf(ptr null, ptr null, double %13, double %14, double 0.000000e+00)41 %16 = fpext float %10 to double42 %17 = tail call i32 (ptr, ptr, ...) @fprintf(ptr null, ptr null, double 0.000000e+00, double %16, double 0.000000e+00)43 ret void44}45 46declare i32 @fprintf(ptr, ptr, ...)47