1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 5 2; RUN: opt -S -passes=normalize < %s | FileCheck %s 3 4define void @test(ptr, i32) { 5; CHECK-LABEL: define void @test( 6; CHECK-SAME: ptr [[A0:%.*]], i32 [[A1:%.*]]) { 7; CHECK-NEXT: [[BB76951:.*]]: 8; CHECK-NEXT: %"vl72693([[A1]], 1)" = add i32 [[A1]], 1 9; CHECK-NEXT: br label %[[BB16110:.*]] 10; CHECK: [[BB16110]]: 11; CHECK-NEXT: %"op10912(op18080, vl72693)" = phi i32 [ %"op18080(op10412, op17645)", %[[BB16110]] ], [ %"vl72693([[A1]], 1)", %[[BB76951]] ] 12; CHECK-NEXT: %"op10912(op17645, vl72693)" = phi i32 [ %"op17645(op10912)70", %[[BB16110]] ], [ %"vl72693([[A1]], 1)", %[[BB76951]] ] 13; CHECK-NEXT: %"op15084(op10912)" = mul i32 %"op10912(op18080, vl72693)", undef 14; CHECK-NEXT: %"op16562(op15084)" = xor i32 -1, %"op15084(op10912)" 15; CHECK-NEXT: %"op44627(op10912, op16562)" = add i32 %"op10912(op18080, vl72693)", %"op16562(op15084)" 16; CHECK-NEXT: %"op17645(op10912)" = add i32 -1, %"op10912(op17645, vl72693)" 17; CHECK-NEXT: %"op18080(op17645, op44627)" = add i32 %"op17645(op10912)", %"op44627(op10912, op16562)" 18; CHECK-NEXT: %"op17720(op15084, op18080)" = mul i32 %"op15084(op10912)", %"op18080(op17645, op44627)" 19; CHECK-NEXT: %"op16562(op17720)" = xor i32 -1, %"op17720(op15084, op18080)" 20; CHECK-NEXT: %"op17430(op16562, op18080)" = add i32 %"op16562(op17720)", %"op18080(op17645, op44627)" 21; CHECK-NEXT: %"op10412(op17430)" = add i32 %"op17430(op16562, op18080)", undef 22; CHECK-NEXT: %"op17720(op10412, op17720)" = mul i32 %"op10412(op17430)", %"op17720(op15084, op18080)" 23; CHECK-NEXT: %"op16562(op17720)1" = xor i32 -1, %"op17720(op10412, op17720)" 24; CHECK-NEXT: %"op17430(op10412, op16562)" = add i32 %"op10412(op17430)", %"op16562(op17720)1" 25; CHECK-NEXT: %"op10412(op17430)2" = add i32 %"op17430(op10412, op16562)", undef 26; CHECK-NEXT: %"op10412(op10412)" = add i32 %"op10412(op17430)2", undef 27; CHECK-NEXT: %"op10412(op10412)3" = add i32 %"op10412(op10412)", undef 28; CHECK-NEXT: %"op17720(op10412, op17720)4" = mul i32 %"op10412(op17430)2", %"op17720(op10412, op17720)" 29; CHECK-NEXT: %"op17720(op10412, op17720)5" = mul i32 %"op10412(op10412)3", %"op17720(op10412, op17720)4" 30; CHECK-NEXT: %"op16562(op17720)6" = xor i32 -1, %"op17720(op10412, op17720)5" 31; CHECK-NEXT: %"op17430(op10412, op16562)7" = add i32 %"op10412(op10412)3", %"op16562(op17720)6" 32; CHECK-NEXT: %"op10412(op17430)8" = add i32 %"op17430(op10412, op16562)7", undef 33; CHECK-NEXT: %"op17720(op10412, op17720)9" = mul i32 %"op10412(op17430)8", %"op17720(op10412, op17720)5" 34; CHECK-NEXT: %"op16562(op17720)10" = xor i32 -1, %"op17720(op10412, op17720)9" 35; CHECK-NEXT: %"op17430(op10412, op16562)11" = add i32 %"op10412(op17430)8", %"op16562(op17720)10" 36; CHECK-NEXT: %"op10412(op17430)12" = add i32 %"op17430(op10412, op16562)11", undef 37; CHECK-NEXT: %"op17720(op10412, op17720)13" = mul i32 %"op10412(op17430)12", %"op17720(op10412, op17720)9" 38; CHECK-NEXT: %"op16562(op17720)14" = xor i32 -1, %"op17720(op10412, op17720)13" 39; CHECK-NEXT: %"op17430(op10412, op16562)15" = add i32 %"op10412(op17430)12", %"op16562(op17720)14" 40; CHECK-NEXT: %"op10412(op17430)16" = add i32 %"op17430(op10412, op16562)15", undef 41; CHECK-NEXT: %"op17720(op10412, op17720)17" = mul i32 %"op10412(op17430)16", %"op17720(op10412, op17720)13" 42; CHECK-NEXT: %"op16562(op17720)18" = xor i32 -1, %"op17720(op10412, op17720)17" 43; CHECK-NEXT: %"op17430(op10412, op16562)19" = add i32 %"op10412(op17430)16", %"op16562(op17720)18" 44; CHECK-NEXT: %"op10412(op17430)20" = add i32 %"op17430(op10412, op16562)19", undef 45; CHECK-NEXT: %"op17720(op10412, op17720)21" = mul i32 %"op10412(op17430)20", %"op17720(op10412, op17720)17" 46; CHECK-NEXT: %"op16562(op17720)22" = xor i32 -1, %"op17720(op10412, op17720)21" 47; CHECK-NEXT: %"op17430(op10412, op16562)23" = add i32 %"op10412(op17430)20", %"op16562(op17720)22" 48; CHECK-NEXT: %"op17645(op10912)24" = add i32 -9, %"op10912(op17645, vl72693)" 49; CHECK-NEXT: %"op18080(op17430, op17645)" = add i32 %"op17430(op10412, op16562)23", %"op17645(op10912)24" 50; CHECK-NEXT: %"op17720(op17720, op18080)" = mul i32 %"op17720(op10412, op17720)21", %"op18080(op17430, op17645)" 51; CHECK-NEXT: %"op16562(op17720)25" = xor i32 -1, %"op17720(op17720, op18080)" 52; CHECK-NEXT: %"op17430(op16562, op18080)26" = add i32 %"op16562(op17720)25", %"op18080(op17430, op17645)" 53; CHECK-NEXT: %"op10412(op17430)27" = add i32 %"op17430(op16562, op18080)26", undef 54; CHECK-NEXT: %"op17720(op10412, op17720)28" = mul i32 %"op10412(op17430)27", %"op17720(op17720, op18080)" 55; CHECK-NEXT: %"op16562(op17720)29" = xor i32 -1, %"op17720(op10412, op17720)28" 56; CHECK-NEXT: %"op17430(op10412, op16562)30" = add i32 %"op10412(op17430)27", %"op16562(op17720)29" 57; CHECK-NEXT: %"op10412(op17430)31" = add i32 %"op17430(op10412, op16562)30", undef 58; CHECK-NEXT: %"op17720(op10412, op17720)32" = mul i32 %"op10412(op17430)31", %"op17720(op10412, op17720)28" 59; CHECK-NEXT: %"op16562(op17720)33" = xor i32 -1, %"op17720(op10412, op17720)32" 60; CHECK-NEXT: %"op17430(op10412, op16562)34" = add i32 %"op10412(op17430)31", %"op16562(op17720)33" 61; CHECK-NEXT: %"op10412(op17430)35" = add i32 %"op17430(op10412, op16562)34", undef 62; CHECK-NEXT: %"op17720(op10412, op17720)36" = mul i32 %"op10412(op17430)35", %"op17720(op10412, op17720)32" 63; CHECK-NEXT: %"op16562(op17720)37" = xor i32 -1, %"op17720(op10412, op17720)36" 64; CHECK-NEXT: %"op17430(op10412, op16562)38" = add i32 %"op10412(op17430)35", %"op16562(op17720)37" 65; CHECK-NEXT: %"op10412(op17430)39" = add i32 %"op17430(op10412, op16562)38", undef 66; CHECK-NEXT: %"op17720(op10412, op17720)40" = mul i32 %"op10412(op17430)39", %"op17720(op10412, op17720)36" 67; CHECK-NEXT: %"op16562(op17720)41" = xor i32 -1, %"op17720(op10412, op17720)40" 68; CHECK-NEXT: %"op17430(op10412, op16562)42" = add i32 %"op10412(op17430)39", %"op16562(op17720)41" 69; CHECK-NEXT: %"op17645(op10912)43" = add i32 -14, %"op10912(op17645, vl72693)" 70; CHECK-NEXT: %"op18080(op17430, op17645)44" = add i32 %"op17430(op10412, op16562)42", %"op17645(op10912)43" 71; CHECK-NEXT: %"op17720(op17720, op18080)45" = mul i32 %"op17720(op10412, op17720)40", %"op18080(op17430, op17645)44" 72; CHECK-NEXT: %"op16562(op17720)46" = xor i32 -1, %"op17720(op17720, op18080)45" 73; CHECK-NEXT: %"op17430(op16562, op18080)47" = add i32 %"op16562(op17720)46", %"op18080(op17430, op17645)44" 74; CHECK-NEXT: %"op10412(op17430)48" = add i32 %"op17430(op16562, op18080)47", undef 75; CHECK-NEXT: %"op17720(op10412, op17720)49" = mul i32 %"op10412(op17430)48", %"op17720(op17720, op18080)45" 76; CHECK-NEXT: %"op16562(op17720)50" = xor i32 -1, %"op17720(op10412, op17720)49" 77; CHECK-NEXT: %"op17430(op10412, op16562)51" = add i32 %"op10412(op17430)48", %"op16562(op17720)50" 78; CHECK-NEXT: %"op10412(op17430)52" = add i32 %"op17430(op10412, op16562)51", undef 79; CHECK-NEXT: %"op17720(op10412, op17720)53" = mul i32 %"op10412(op17430)52", %"op17720(op10412, op17720)49" 80; CHECK-NEXT: %"op16562(op17720)54" = xor i32 -1, %"op17720(op10412, op17720)53" 81; CHECK-NEXT: %"op17430(op10412, op16562)55" = add i32 %"op10412(op17430)52", %"op16562(op17720)54" 82; CHECK-NEXT: %"op10412(op17430)56" = add i32 %"op17430(op10412, op16562)55", undef 83; CHECK-NEXT: %"op17720(op10412, op17720)57" = mul i32 %"op10412(op17430)56", %"op17720(op10412, op17720)53" 84; CHECK-NEXT: %"op16562(op17720)58" = xor i32 -1, %"op17720(op10412, op17720)57" 85; CHECK-NEXT: %"op17430(op10412, op16562)59" = add i32 %"op10412(op17430)56", %"op16562(op17720)58" 86; CHECK-NEXT: %"op10412(op17430)60" = add i32 %"op17430(op10412, op16562)59", undef 87; CHECK-NEXT: %"op17720(op10412, op17720)61" = mul i32 %"op10412(op17430)60", %"op17720(op10412, op17720)57" 88; CHECK-NEXT: %"op16562(op17720)62" = xor i32 -1, %"op17720(op10412, op17720)61" 89; CHECK-NEXT: %"op17430(op10412, op16562)63" = add i32 %"op10412(op17430)60", %"op16562(op17720)62" 90; CHECK-NEXT: %"op10412(op17430)64" = add i32 %"op17430(op10412, op16562)63", undef 91; CHECK-NEXT: %"op17720(op10412, op17720)65" = mul i32 %"op10412(op17430)64", %"op17720(op10412, op17720)61" 92; CHECK-NEXT: %"op16562(op17720)66" = xor i32 -1, %"op17720(op10412, op17720)65" 93; CHECK-NEXT: %"op17430(op10412, op16562)67" = add i32 %"op10412(op17430)64", %"op16562(op17720)66" 94; CHECK-NEXT: %"op10412(op17430)68" = add i32 %"op17430(op10412, op16562)67", undef 95; CHECK-NEXT: %"op10412(op10412)69" = add i32 %"op10412(op17430)68", undef 96; CHECK-NEXT: %"op17645(op10912)70" = add i32 -21, %"op10912(op17645, vl72693)" 97; CHECK-NEXT: %"op18080(op10412, op17645)" = add i32 %"op10412(op10412)69", %"op17645(op10912)70" 98; CHECK-NEXT: store i32 %"op18080(op10412, op17645)", ptr [[A0]], align 4 99; CHECK-NEXT: br label %[[BB16110]] 100; 101bb: 102 %a = add i32 %1, 1 103 br label %bb1 104 105bb1: ; preds = %bb1, %bb 106 %tmp = phi i32 [ %a, %bb ], [ %tmp87, %bb1 ] 107 %tmp2 = phi i32 [ %a, %bb ], [ %tmp86, %bb1 ] 108 %tmp3 = mul i32 %tmp, undef 109 %tmp4 = xor i32 %tmp3, -1 110 %tmp5 = add i32 %tmp, %tmp4 111 %tmp6 = add i32 %tmp2, -1 112 %tmp7 = add i32 %tmp5, %tmp6 113 %tmp8 = mul i32 %tmp7, %tmp3 114 %tmp9 = xor i32 %tmp8, -1 115 %tmp10 = add i32 %tmp7, %tmp9 116 %tmp11 = add i32 %tmp10, undef 117 %tmp12 = mul i32 %tmp11, %tmp8 118 %tmp13 = xor i32 %tmp12, -1 119 %tmp14 = add i32 %tmp11, %tmp13 120 %tmp15 = add i32 %tmp14, undef 121 %tmp16 = mul i32 %tmp15, %tmp12 122 %tmp17 = add i32 %tmp15, undef 123 %tmp18 = add i32 %tmp17, undef 124 %tmp19 = mul i32 %tmp18, %tmp16 125 %tmp20 = xor i32 %tmp19, -1 126 %tmp21 = add i32 %tmp18, %tmp20 127 %tmp22 = add i32 %tmp21, undef 128 %tmp23 = mul i32 %tmp22, %tmp19 129 %tmp24 = xor i32 %tmp23, -1 130 %tmp25 = add i32 %tmp22, %tmp24 131 %tmp26 = add i32 %tmp25, undef 132 %tmp27 = mul i32 %tmp26, %tmp23 133 %tmp28 = xor i32 %tmp27, -1 134 %tmp29 = add i32 %tmp26, %tmp28 135 %tmp30 = add i32 %tmp29, undef 136 %tmp31 = mul i32 %tmp30, %tmp27 137 %tmp32 = xor i32 %tmp31, -1 138 %tmp33 = add i32 %tmp30, %tmp32 139 %tmp34 = add i32 %tmp33, undef 140 %tmp35 = mul i32 %tmp34, %tmp31 141 %tmp36 = xor i32 %tmp35, -1 142 %tmp37 = add i32 %tmp34, %tmp36 143 %tmp38 = add i32 %tmp2, -9 144 %tmp39 = add i32 %tmp37, %tmp38 145 %tmp40 = mul i32 %tmp39, %tmp35 146 %tmp41 = xor i32 %tmp40, -1 147 %tmp42 = add i32 %tmp39, %tmp41 148 %tmp43 = add i32 %tmp42, undef 149 %tmp44 = mul i32 %tmp43, %tmp40 150 %tmp45 = xor i32 %tmp44, -1 151 %tmp46 = add i32 %tmp43, %tmp45 152 %tmp47 = add i32 %tmp46, undef 153 %tmp48 = mul i32 %tmp47, %tmp44 154 %tmp49 = xor i32 %tmp48, -1 155 %tmp50 = add i32 %tmp47, %tmp49 156 %tmp51 = add i32 %tmp50, undef 157 %tmp52 = mul i32 %tmp51, %tmp48 158 %tmp53 = xor i32 %tmp52, -1 159 %tmp54 = add i32 %tmp51, %tmp53 160 %tmp55 = add i32 %tmp54, undef 161 %tmp56 = mul i32 %tmp55, %tmp52 162 %tmp57 = xor i32 %tmp56, -1 163 %tmp58 = add i32 %tmp55, %tmp57 164 %tmp59 = add i32 %tmp2, -14 165 %tmp60 = add i32 %tmp58, %tmp59 166 %tmp61 = mul i32 %tmp60, %tmp56 167 %tmp62 = xor i32 %tmp61, -1 168 %tmp63 = add i32 %tmp60, %tmp62 169 %tmp64 = add i32 %tmp63, undef 170 %tmp65 = mul i32 %tmp64, %tmp61 171 %tmp66 = xor i32 %tmp65, -1 172 %tmp67 = add i32 %tmp64, %tmp66 173 %tmp68 = add i32 %tmp67, undef 174 %tmp69 = mul i32 %tmp68, %tmp65 175 %tmp70 = xor i32 %tmp69, -1 176 %tmp71 = add i32 %tmp68, %tmp70 177 %tmp72 = add i32 %tmp71, undef 178 %tmp73 = mul i32 %tmp72, %tmp69 179 %tmp74 = xor i32 %tmp73, -1 180 %tmp75 = add i32 %tmp72, %tmp74 181 %tmp76 = add i32 %tmp75, undef 182 %tmp77 = mul i32 %tmp76, %tmp73 183 %tmp78 = xor i32 %tmp77, -1 184 %tmp79 = add i32 %tmp76, %tmp78 185 %tmp80 = add i32 %tmp79, undef 186 %tmp81 = mul i32 %tmp80, %tmp77 187 %tmp82 = xor i32 %tmp81, -1 188 %tmp83 = add i32 %tmp80, %tmp82 189 %tmp84 = add i32 %tmp83, undef 190 %tmp85 = add i32 %tmp84, undef 191 %tmp86 = add i32 %tmp2, -21 192 %tmp87 = add i32 %tmp85, %tmp86 193 store i32 %tmp87, ptr %0 194 br label %bb1 195} 196