56 lines · plain
1; RUN: opt < %s -passes=loop-vectorize -S -mcpu=pwr9 2>&1 | FileCheck %s2; RUN: opt < %s -passes='loop-vectorize' -S -mcpu=pwr9 2>&1 | FileCheck %s3 4; CHECK-LABEL: vector.body5; CHECK: load double, ptr6; CHECK-NEXT: load double, ptr7; CHECK-NEXT: load double, ptr8; CHECK-NEXT: load double, ptr9 10; CHECK: fmul fast double11; CHECK-NEXT: fmul fast double12; CHECK-NEXT: fmul fast double13; CHECK-NEXT: fmul fast double14 15; CHECK: fadd fast double16; CHECK-NEXT: fadd fast double17; CHECK-NEXT: fadd fast double18; CHECK-NEXT: fadd fast double19 20target datalayout = "e-m:e-i64:64-n32:64"21target triple = "powerpc64le-unknown-linux-gnu"22 23define dso_local void @test(ptr %arg, ptr %arg1) align 2 {24bb:25 %tpm15 = load ptr, ptr %arg, align 826 %tpm19 = load ptr, ptr %arg1, align 827 br label %bb2228bb22: ; preds = %bb33, %bb29 %tpm26 = add i64 0, 130 %tpm10 = alloca i32, align 831 %tpm27 = getelementptr inbounds i32, ptr %tpm10, i64 %tpm2632 %tpm29 = load ptr, ptr %tpm15, align 833 %tpm17 = alloca double, align 834 %tpm32 = getelementptr inbounds double, ptr %tpm17, i64 %tpm2635 br label %bb4036bb33: ; preds = %bb4037 %tpm37 = fsub fast double 0.000000e+00, %tpm5038 store double %tpm37, ptr %tpm19, align 839 br label %bb2240bb40: ; preds = %bb40, %bb2241 %tpm41 = phi ptr [ %tpm51, %bb40 ], [ %tpm27, %bb22 ]42 %tpm42 = phi ptr [ %tpm52, %bb40 ], [ %tpm32, %bb22 ]43 %tpm43 = phi double [ %tpm50, %bb40 ], [ 0.000000e+00, %bb22 ]44 %tpm44 = load double, ptr %tpm42, align 845 %tpm45 = load i32, ptr %tpm41, align 446 %tpm46 = zext i32 %tpm45 to i6447 %tpm47 = getelementptr inbounds double, ptr %tpm19, i64 %tpm4648 %tpm48 = load double, ptr %tpm47, align 849 %tpm49 = fmul fast double %tpm48, %tpm4450 %tpm50 = fadd fast double %tpm49, %tpm4351 %tpm51 = getelementptr inbounds i32, ptr %tpm41, i64 152 %tpm52 = getelementptr inbounds double, ptr %tpm42, i64 153 %tpm53 = icmp eq ptr %tpm51, %tpm2954 br i1 %tpm53, label %bb33, label %bb4055}56