; RUN: opt -S -loop-reduce < %s | FileCheck %s source_filename = "./simple.ll" target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128-ni:1-p2:32:8:8:32-ni:2" target triple = "x86_64-unknown-linux-gnu" ; CHECK-LABEL: test define void @test() { bb: br label %bb1 bb1: ; preds = %bb1, %bb %tmp = phi i32 [ undef, %bb ], [ %tmp87, %bb1 ] %tmp2 = phi i32 [ undef, %bb ], [ %tmp86, %bb1 ] %tmp3 = mul i32 %tmp, undef %tmp4 = xor i32 %tmp3, -1 %tmp5 = add i32 %tmp, %tmp4 %tmp6 = add i32 %tmp2, -1 %tmp7 = add i32 %tmp5, %tmp6 %tmp8 = mul i32 %tmp7, %tmp3 %tmp9 = xor i32 %tmp8, -1 %tmp10 = add i32 %tmp7, %tmp9 %tmp11 = add i32 %tmp10, undef %tmp12 = mul i32 %tmp11, %tmp8 %tmp13 = xor i32 %tmp12, -1 %tmp14 = add i32 %tmp11, %tmp13 %tmp15 = add i32 %tmp14, undef %tmp16 = mul i32 %tmp15, %tmp12 %tmp17 = add i32 %tmp15, undef %tmp18 = add i32 %tmp17, undef %tmp19 = mul i32 %tmp18, %tmp16 %tmp20 = xor i32 %tmp19, -1 %tmp21 = add i32 %tmp18, %tmp20 %tmp22 = add i32 %tmp21, undef %tmp23 = mul i32 %tmp22, %tmp19 %tmp24 = xor i32 %tmp23, -1 %tmp25 = add i32 %tmp22, %tmp24 %tmp26 = add i32 %tmp25, undef %tmp27 = mul i32 %tmp26, %tmp23 %tmp28 = xor i32 %tmp27, -1 %tmp29 = add i32 %tmp26, %tmp28 %tmp30 = add i32 %tmp29, undef %tmp31 = mul i32 %tmp30, %tmp27 %tmp32 = xor i32 %tmp31, -1 %tmp33 = add i32 %tmp30, %tmp32 %tmp34 = add i32 %tmp33, undef %tmp35 = mul i32 %tmp34, %tmp31 %tmp36 = xor i32 %tmp35, -1 %tmp37 = add i32 %tmp34, %tmp36 %tmp38 = add i32 %tmp2, -9 %tmp39 = add i32 %tmp37, %tmp38 %tmp40 = mul i32 %tmp39, %tmp35 %tmp41 = xor i32 %tmp40, -1 %tmp42 = add i32 %tmp39, %tmp41 %tmp43 = add i32 %tmp42, undef %tmp44 = mul i32 %tmp43, %tmp40 %tmp45 = xor i32 %tmp44, -1 %tmp46 = add i32 %tmp43, %tmp45 %tmp47 = add i32 %tmp46, undef %tmp48 = mul i32 %tmp47, %tmp44 %tmp49 = xor i32 %tmp48, -1 %tmp50 = add i32 %tmp47, %tmp49 %tmp51 = add i32 %tmp50, undef %tmp52 = mul i32 %tmp51, %tmp48 %tmp53 = xor i32 %tmp52, -1 %tmp54 = add i32 %tmp51, %tmp53 %tmp55 = add i32 %tmp54, undef %tmp56 = mul i32 %tmp55, %tmp52 %tmp57 = xor i32 %tmp56, -1 %tmp58 = add i32 %tmp55, %tmp57 %tmp59 = add i32 %tmp2, -14 %tmp60 = add i32 %tmp58, %tmp59 %tmp61 = mul i32 %tmp60, %tmp56 %tmp62 = xor i32 %tmp61, -1 %tmp63 = add i32 %tmp60, %tmp62 %tmp64 = add i32 %tmp63, undef %tmp65 = mul i32 %tmp64, %tmp61 %tmp66 = xor i32 %tmp65, -1 %tmp67 = add i32 %tmp64, %tmp66 %tmp68 = add i32 %tmp67, undef %tmp69 = mul i32 %tmp68, %tmp65 %tmp70 = xor i32 %tmp69, -1 %tmp71 = add i32 %tmp68, %tmp70 %tmp72 = add i32 %tmp71, undef %tmp73 = mul i32 %tmp72, %tmp69 %tmp74 = xor i32 %tmp73, -1 %tmp75 = add i32 %tmp72, %tmp74 %tmp76 = add i32 %tmp75, undef %tmp77 = mul i32 %tmp76, %tmp73 %tmp78 = xor i32 %tmp77, -1 %tmp79 = add i32 %tmp76, %tmp78 %tmp80 = add i32 %tmp79, undef %tmp81 = mul i32 %tmp80, %tmp77 %tmp82 = xor i32 %tmp81, -1 %tmp83 = add i32 %tmp80, %tmp82 %tmp84 = add i32 %tmp83, undef %tmp85 = add i32 %tmp84, undef %tmp86 = add i32 %tmp2, -21 %tmp87 = add i32 %tmp85, %tmp86 br label %bb1 }