203 lines · plain
1; RUN: llc -mtriple=hexagon < %s2; REQUIRES: asserts3 4target triple = "hexagon"5 6%s.0 = type { ptr, ptr, ptr }7%s.1 = type { ptr, ptr, ptr }8%s.2 = type { ptr, ptr, ptr, ptr, ptr, ptr }9%s.3 = type { ptr, ptr, ptr }10%s.4 = type { ptr, ptr, ptr }11%s.5 = type { ptr, ptr, i32 }12 13; Function Attrs: nounwind optsize14declare zeroext i1 @f0(ptr) #0 align 215 16; Function Attrs: nounwind optsize17declare zeroext i1 @f1(ptr) #0 align 218 19; Function Attrs: optsize20declare hidden void @f2(ptr noalias nocapture sret(i32), i32) #1 align 221 22; Function Attrs: optsize23declare hidden void @f3(ptr noalias nocapture sret(i32), i32) #1 align 224 25; Function Attrs: optsize26declare hidden void @f4(ptr noalias nocapture sret(i32), i32) #1 align 227 28; Function Attrs: optsize29declare hidden void @f5(ptr noalias nocapture sret(i32), i32) #1 align 230 31; Function Attrs: optsize32declare hidden void @f6(ptr noalias nocapture sret(i32), i32) #1 align 233 34; Function Attrs: optsize35declare hidden void @f7(ptr noalias nocapture sret(i32), i32) #1 align 236 37; Function Attrs: optsize38declare zeroext i1 @f8(ptr, ptr, i64) #1 align 239 40; Function Attrs: nounwind optsize41declare ptr @f9(ptr nocapture readonly) #0 align 242 43; Function Attrs: optsize44define void @f10(ptr %a0, ptr dereferenceable(64) %a1) #1 align 2 {45b0:46 %v0 = alloca %s.0, align 447 %v1 = alloca %s.1, align 448 %v2 = alloca %s.2, align 449 %v3 = alloca %s.3, align 450 %v4 = alloca %s.4, align 451 %v5 = alloca %s.5, align 852 br i1 undef, label %b34, label %b153 54b1: ; preds = %b055 br i1 undef, label %b3, label %b256 57b2: ; preds = %b158 %v6 = ptrtoint ptr %v0 to i3259 %v7 = zext i32 %v6 to i6460 %v8 = shl nuw i64 %v7, 3261 %f2.ext = zext i32 ptrtoint (ptr @f2 to i32) to i6462 %v9 = or i64 %v8, %f2.ext63 %v10 = ptrtoint ptr %v4 to i3264 %v11 = zext i32 %v10 to i6465 %v12 = shl nuw i64 %v11, 3266 %f5.ext = zext i32 ptrtoint (ptr @f5 to i32) to i6467 %v13 = or i64 %v12, %f5.ext68 %v14 = ptrtoint ptr %v5 to i3269 %v15 = zext i32 %v14 to i6470 %v16 = shl nuw i64 %v15, 3271 %f6.ext = zext i32 ptrtoint (ptr @f6 to i32) to i6472 %v17 = or i64 %v16, %f6.ext73 %v18 = ptrtoint ptr %v1 to i3274 %v19 = zext i32 %v18 to i6475 %v20 = shl nuw i64 %v19, 3276 %f3.ext = zext i32 ptrtoint (ptr @f3 to i32) to i6477 %v21 = or i64 %v20, %f3.ext78 %v22 = ptrtoint ptr %v2 to i3279 %v23 = zext i32 %v22 to i6480 %v24 = shl nuw i64 %v23, 3281 %f4.ext = zext i32 ptrtoint (ptr @f4 to i32) to i6482 %v25 = or i64 %v24, %f4.ext83 %v26 = ptrtoint ptr %v3 to i3284 %v27 = zext i32 %v26 to i6485 %v28 = shl nuw i64 %v27, 3286 %f7.ext = zext i32 ptrtoint (ptr @f7 to i32) to i6487 %v29 = or i64 %v28, %f7.ext88 %v30 = call ptr @f9(ptr nonnull null) #189 br i1 undef, label %b5, label %b490 91b3: ; preds = %b192 unreachable93 94b4: ; preds = %b295 store ptr null, ptr null, align 496 %v31 = call zeroext i1 @f0(ptr null) #097 br i1 %v31, label %b6, label %b3298 99b5: ; preds = %b2100 unreachable101 102b6: ; preds = %b4103 br i1 undef, label %b7, label %b32104 105b7: ; preds = %b6106 br i1 undef, label %b8, label %b32107 108b8: ; preds = %b7109 br i1 undef, label %b9, label %b32110 111b9: ; preds = %b8112 br i1 undef, label %b10, label %b32113 114b10: ; preds = %b9115 %v32 = call zeroext i1 @f1(ptr null) #0116 br i1 %v32, label %b11, label %b32117 118b11: ; preds = %b10119 br i1 undef, label %b13, label %b12120 121b12: ; preds = %b11122 unreachable123 124b13: ; preds = %b11125 %v33 = call zeroext i1 @f0(ptr undef) #0126 br i1 %v33, label %b14, label %b32127 128b14: ; preds = %b13129 br i1 undef, label %b16, label %b15130 131b15: ; preds = %b14132 unreachable133 134b16: ; preds = %b14135 %v34 = call zeroext i1 @f1(ptr null) #0136 br i1 %v34, label %b18, label %b17137 138b17: ; preds = %b16139 unreachable140 141b18: ; preds = %b16142 br i1 undef, label %b19, label %b32143 144b19: ; preds = %b18145 br i1 undef, label %b26, label %b20146 147b20: ; preds = %b19148 br i1 undef, label %b22, label %b21149 150b21: ; preds = %b20151 br i1 undef, label %b23, label %b32152 153b22: ; preds = %b20154 unreachable155 156b23: ; preds = %b21157 br i1 undef, label %b24, label %b32158 159b24: ; preds = %b23160 %v35 = call zeroext i1 @f8(ptr nonnull %a1, ptr undef, i64 undef) #1161 br i1 %v35, label %b25, label %b32162 163b25: ; preds = %b24164 %v36 = call zeroext i1 @f8(ptr nonnull %a1, ptr undef, i64 %v9) #1165 unreachable166 167b26: ; preds = %b19168 br i1 undef, label %b27, label %b32169 170b27: ; preds = %b26171 br i1 undef, label %b28, label %b32172 173b28: ; preds = %b27174 br i1 undef, label %b31, label %b29175 176b29: ; preds = %b28177 %v37 = call zeroext i1 @f8(ptr nonnull %a1, ptr null, i64 %v21) #1178 %v38 = call zeroext i1 @f8(ptr nonnull %a1, ptr undef, i64 %v25) #1179 br i1 %v38, label %b30, label %b32180 181b30: ; preds = %b29182 %v39 = call zeroext i1 @f8(ptr nonnull %a1, ptr undef, i64 %v29) #1183 unreachable184 185b31: ; preds = %b28186 %v40 = call zeroext i1 @f8(ptr nonnull %a1, ptr null, i64 %v13) #1187 %v41 = call zeroext i1 @f8(ptr nonnull %a1, ptr undef, i64 %v17) #1188 br i1 %v41, label %b33, label %b32189 190b32: ; preds = %b31, %b29, %b27, %b26, %b24, %b23, %b21, %b18, %b13, %b10, %b9, %b8, %b7, %b6, %b4191 unreachable192 193b33: ; preds = %b31194 store ptr %a0, ptr undef, align 4195 unreachable196 197b34: ; preds = %b0198 ret void199}200 201attributes #0 = { nounwind optsize }202attributes #1 = { optsize }203