brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.7 KiB · b3a4b4f Raw
163 lines · plain
1; RUN: opt < %s -passes=instcombine -S | FileCheck %s2; <rdar://problem/10889741>3 4define void @func(double %r, double %g, double %b, ptr %outH, ptr %outS, ptr %outL) nounwind uwtable ssp {5bb:6  %tmp = alloca double, align 87  %tmp1 = alloca double, align 88  %tmp2 = alloca double, align 89  store double %r, ptr %tmp, align 810  store double %g, ptr %tmp1, align 811  store double %b, ptr %tmp2, align 812  %tmp3 = fcmp ogt double %r, %g13  br i1 %tmp3, label %bb4, label %bb814 15bb4:                                              ; preds = %bb16  %tmp5 = fcmp ogt double %r, %b17  br i1 %tmp5, label %bb6, label %bb718 19bb6:                                              ; preds = %bb420  br label %bb1221 22bb7:                                              ; preds = %bb423  br label %bb1224 25bb8:                                              ; preds = %bb26  %tmp9 = fcmp ogt double %g, %b27  br i1 %tmp9, label %bb10, label %bb1128 29bb10:                                             ; preds = %bb830  br label %bb1231 32bb11:                                             ; preds = %bb833  br label %bb1234 35bb12:                                             ; preds = %bb11, %bb10, %bb7, %bb636  %max.0 = phi ptr [ %tmp, %bb6 ], [ %tmp2, %bb7 ], [ %tmp1, %bb10 ], [ %tmp2, %bb11 ]37; CHECK: %tmp13 = load double, ptr %tmp, align 838; CHECK: %tmp14 = load double, ptr %tmp1, align 839; CHECK: %tmp15 = fcmp olt double %tmp13, %tmp1440  %tmp13 = load double, ptr %tmp, align 841  %tmp14 = load double, ptr %tmp1, align 842  %tmp15 = fcmp olt double %tmp13, %tmp1443  br i1 %tmp15, label %bb16, label %bb2144 45bb16:                                             ; preds = %bb1246  %tmp17 = load double, ptr %tmp2, align 847  %tmp18 = fcmp olt double %tmp13, %tmp1748  br i1 %tmp18, label %bb19, label %bb2049 50bb19:                                             ; preds = %bb1651  br label %bb2652 53bb20:                                             ; preds = %bb1654  br label %bb2655 56bb21:                                             ; preds = %bb1257  %tmp22 = load double, ptr %tmp2, align 858  %tmp23 = fcmp olt double %tmp14, %tmp2259  br i1 %tmp23, label %bb24, label %bb2560 61bb24:                                             ; preds = %bb2162  br label %bb2663 64bb25:                                             ; preds = %bb2165  br label %bb2666 67bb26:                                             ; preds = %bb25, %bb24, %bb20, %bb1968  %min.0 = phi ptr [ %tmp, %bb19 ], [ %tmp2, %bb20 ], [ %tmp1, %bb24 ], [ %tmp2, %bb25 ]69; CHECK: %tmp27 = load double, ptr %min.0, align 870; CHECK: %tmp28 = load double, ptr %max.071; CHECK: %tmp29 = fadd double %tmp27, %tmp2872  %tmp27 = load double, ptr %min.0, align 873  %tmp28 = load double, ptr %max.074  %tmp29 = fadd double %tmp27, %tmp2875  %tmp30 = fdiv double %tmp29, 2.000000e+0076  store double %tmp30, ptr %outL77  %tmp31 = load double, ptr %min.078  %tmp32 = load double, ptr %max.079  %tmp33 = fcmp oeq double %tmp31, %tmp3280  br i1 %tmp33, label %bb34, label %bb3581 82bb34:                                             ; preds = %bb2683  store double 0.000000e+00, ptr %outS84  store double 0.000000e+00, ptr %outH85  br label %bb8186 87bb35:                                             ; preds = %bb2688  %tmp36 = fcmp olt double %tmp30, 5.000000e-0189  %tmp37 = fsub double %tmp32, %tmp3190  br i1 %tmp36, label %bb38, label %bb4191 92bb38:                                             ; preds = %bb3593  %tmp39 = fadd double %tmp32, %tmp3194  %tmp40 = fdiv double %tmp37, %tmp3995  store double %tmp40, ptr %outS96  br label %bb4597 98bb41:                                             ; preds = %bb3599  %tmp42 = fsub double 2.000000e+00, %tmp32100  %tmp43 = fsub double %tmp42, %tmp31101  %tmp44 = fdiv double %tmp37, %tmp43102  store double %tmp44, ptr %outS103  br label %bb45104 105bb45:                                             ; preds = %bb41, %bb38106  %tmp46 = icmp eq ptr %max.0, %tmp107  br i1 %tmp46, label %bb47, label %bb55108 109bb47:                                             ; preds = %bb45110  %tmp48 = load double, ptr %tmp1, align 8111  %tmp49 = load double, ptr %tmp2, align 8112  %tmp50 = fsub double %tmp48, %tmp49113  %tmp51 = load double, ptr %max.0114  %tmp52 = load double, ptr %min.0115  %tmp53 = fsub double %tmp51, %tmp52116  %tmp54 = fdiv double %tmp50, %tmp53117  store double %tmp54, ptr %outH118  br label %bb75119 120bb55:                                             ; preds = %bb45121  %tmp56 = icmp eq ptr %max.0, %tmp1122  br i1 %tmp56, label %bb57, label %bb66123 124bb57:                                             ; preds = %bb55125  %tmp58 = load double, ptr %tmp2, align 8126  %tmp59 = load double, ptr %tmp, align 8127  %tmp60 = fsub double %tmp58, %tmp59128  %tmp61 = load double, ptr %max.0129  %tmp62 = load double, ptr %min.0130  %tmp63 = fsub double %tmp61, %tmp62131  %tmp64 = fdiv double %tmp60, %tmp63132  %tmp65 = fadd double 2.000000e+00, %tmp64133  store double %tmp65, ptr %outH134  br label %bb75135 136bb66:                                             ; preds = %bb55137  %tmp67 = load double, ptr %tmp, align 8138  %tmp68 = load double, ptr %tmp1, align 8139  %tmp69 = fsub double %tmp67, %tmp68140  %tmp70 = load double, ptr %max.0141  %tmp71 = load double, ptr %min.0142  %tmp72 = fsub double %tmp70, %tmp71143  %tmp73 = fdiv double %tmp69, %tmp72144  %tmp74 = fadd double 4.000000e+00, %tmp73145  store double %tmp74, ptr %outH146  br label %bb75147 148bb75:                                             ; preds = %bb66, %bb57, %bb47149  %tmp76 = load double, ptr %outH150  %tmp77 = fdiv double %tmp76, 6.000000e+00151  store double %tmp77, ptr %outH152  %tmp78 = fcmp olt double %tmp77, 0.000000e+00153  br i1 %tmp78, label %bb79, label %bb81154 155bb79:                                             ; preds = %bb75156  %tmp80 = fadd double %tmp77, 1.000000e+00157  store double %tmp80, ptr %outH158  br label %bb81159 160bb81:                                             ; preds = %bb79, %bb75, %bb34161  ret void162}163