brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.9 KiB · a36821a Raw
246 lines · plain
1; RUN: llc -O3 -mtriple=hexagon < %s | FileCheck %s2; REQUIRES: asserts3;4; Check that IMPLICIT_DEFs are packetized correctly5; (previously caused an assert).6;7; CHECK: f1:8 9%0 = type { ptr, ptr, ptr }10%1 = type { [16384 x i16], [8192 x i16], [8192 x i16], [8192 x i32], i32, i32, i32, %2, %2, i32, i32, i32, i32 }11%2 = type { i32, i32, i32 }12%3 = type { %4 }13%4 = type { i32, ptr }14%5 = type { i8, i32, i32, i32, i16, i16, i16, i16, i8, i16, %6, %6, i32, i16, i16, i16, i16, i8 }15%6 = type { i32, i32, i32, i32, i32, i32, i32, i8, i8 }16%7 = type { i8, i8, i8, i8, i32, i32, i32, i32, i32, i32, %2, %2, %8, i8 }17%8 = type { %2, %2 }18 19@g0 = external hidden unnamed_addr constant [7 x %0], align 820@g1 = external hidden global %1, align 421@g2 = external hidden constant %3, align 422@g3 = external hidden constant %3, align 423 24declare void @f0(ptr, i32, i32)25 26define hidden fastcc i32 @f1(ptr %a0, ptr %a1, ptr %a2) {27b0:28  br i1 undef, label %b1, label %b229 30b1:                                               ; preds = %b031  unreachable32 33b2:                                               ; preds = %b034  br i1 undef, label %b3, label %b435 36b3:                                               ; preds = %b237  br label %b5538 39b4:                                               ; preds = %b240  br i1 undef, label %b6, label %b541 42b5:                                               ; preds = %b443  %v0 = getelementptr inbounds %5, ptr %a0, i32 0, i32 144  br label %b745 46b6:                                               ; preds = %b447  br label %b5548 49b7:                                               ; preds = %b52, %b550  %v1 = phi i32 [ undef, %b5 ], [ %v43, %b52 ]51  %v2 = phi i32 [ 5, %b5 ], [ %v45, %b52 ]52  %v3 = load i32, ptr undef, align 453  %v4 = load i32, ptr %v0, align 454  %v5 = sext i32 %v4 to i6455  %v6 = sdiv i64 0, %v556  %v7 = trunc i64 %v6 to i3257  %v8 = icmp slt i32 %v7, 20480058  br i1 %v8, label %b8, label %b959 60b8:                                               ; preds = %b761  call void @f0(ptr @g2, i32 %v3, i32 %v4)62  br label %b5463 64b9:                                               ; preds = %b765  %v9 = load i8, ptr undef, align 166  %v10 = zext i8 %v9 to i3267  br i1 undef, label %b10, label %b1168 69b10:                                              ; preds = %b970  br label %b4771 72b11:                                              ; preds = %b973  br i1 undef, label %b12, label %b4774 75b12:                                              ; preds = %b1176  br i1 undef, label %b13, label %b4777 78b13:                                              ; preds = %b1279  %v11 = getelementptr inbounds [7 x %0], ptr @g0, i32 0, i32 %v10, i32 280  %v12 = load ptr, ptr %v11, align 481  %v13 = call zeroext i8 %v12(i8 zeroext %v9)82  br i1 undef, label %b14, label %b4783 84b14:                                              ; preds = %b1385  br i1 undef, label %b15, label %b1686 87b15:                                              ; preds = %b1488  br label %b4689 90b16:                                              ; preds = %b1491  br i1 false, label %b17, label %b2292 93b17:                                              ; preds = %b1694  br i1 undef, label %b18, label %b1995 96b18:                                              ; preds = %b1797  unreachable98 99b19:                                              ; preds = %b17100  br label %b20101 102b20:                                              ; preds = %b20, %b19103  br i1 undef, label %b20, label %b21104 105b21:                                              ; preds = %b20106  unreachable107 108b22:                                              ; preds = %b16109  br i1 false, label %b23, label %b24110 111b23:                                              ; preds = %b22112  br label %b47113 114b24:                                              ; preds = %b22115  br i1 false, label %b25, label %b26116 117b25:                                              ; preds = %b24118  unreachable119 120b26:                                              ; preds = %b24121  br label %b27122 123b27:                                              ; preds = %b36, %b26124  %v14 = phi i32 [ 16, %b26 ], [ %v30, %b36 ]125  %v15 = getelementptr inbounds %1, ptr @g1, i32 0, i32 2, i32 %v14126  %v16 = load i16, ptr %v15, align 2127  %v17 = sext i16 %v16 to i32128  %v18 = select i1 undef, i32 undef, i32 %v17129  %v19 = sext i32 %v18 to i64130  %v20 = or i32 %v18, undef131  br i1 false, label %b28, label %b29132 133b28:                                              ; preds = %b27134  unreachable135 136b29:                                              ; preds = %b27137  br i1 false, label %b30, label %b31138 139b30:                                              ; preds = %b29140  unreachable141 142b31:                                              ; preds = %b29143  %v21 = mul nsw i64 undef, %v19144  %v22 = sdiv i64 0, %v19145  %v23 = add nsw i64 %v22, 0146  %v24 = lshr i64 %v23, 5147  %v25 = trunc i64 %v24 to i32148  %v26 = sub nsw i32 1608, %v25149  %v27 = icmp sgt i16 %v16, -1150  %v28 = and i1 undef, %v27151  br i1 %v28, label %b32, label %b33152 153b32:                                              ; preds = %b31154  store i32 %v26, ptr undef, align 4155  br label %b36156 157b33:                                              ; preds = %b31158  br i1 undef, label %b34, label %b35159 160b34:                                              ; preds = %b33161  %v29 = getelementptr inbounds %1, ptr @g1, i32 0, i32 3, i32 %v14162  store i32 undef, ptr %v29, align 4163  br label %b36164 165b35:                                              ; preds = %b33166  br label %b36167 168b36:                                              ; preds = %b35, %b34, %b32169  %v30 = add nuw nsw i32 %v14, 1170  %v31 = icmp ult i32 %v30, 8192171  br i1 %v31, label %b27, label %b37172 173b37:                                              ; preds = %b36174  br label %b38175 176b38:                                              ; preds = %b38, %b37177  br i1 undef, label %b38, label %b39178 179b39:                                              ; preds = %b38180  br i1 false, label %b40, label %b41181 182b40:                                              ; preds = %b39183  unreachable184 185b41:                                              ; preds = %b39186  %v32 = icmp ult i8 %v9, 6187  br i1 %v32, label %b43, label %b42188 189b42:                                              ; preds = %b41190  br label %b47191 192b43:                                              ; preds = %b41193  %v33 = load i64, ptr undef, align 8194  br label %b44195 196b44:                                              ; preds = %b44, %b43197  br i1 undef, label %b45, label %b44198 199b45:                                              ; preds = %b44200  %v34 = sdiv i64 undef, %v33201  %v35 = trunc i64 %v34 to i32202  %v36 = add nsw i32 0, %v3203  %v37 = sext i32 %v36 to i64204  %v38 = mul nsw i64 %v37, 4096000205  %v39 = sdiv i64 %v38, 0206  %v40 = trunc i64 %v39 to i32207  br label %b46208 209b46:                                              ; preds = %b45, %b15210  %v41 = phi i32 [ undef, %b15 ], [ %v40, %b45 ]211  br label %b47212 213b47:                                              ; preds = %b46, %b42, %b23, %b13, %b12, %b11, %b10214  %v42 = phi i8 [ 1, %b10 ], [ 0, %b46 ], [ 3, %b23 ], [ 1, %b42 ], [ %v13, %b13 ], [ undef, %b12 ], [ undef, %b11 ]215  %v43 = phi i32 [ %v1, %b10 ], [ %v41, %b46 ], [ %v1, %b23 ], [ %v1, %b42 ], [ %v1, %b13 ], [ %v1, %b12 ], [ %v1, %b11 ]216  %v44 = icmp eq i8 %v42, 1217  br i1 %v44, label %b48, label %b49218 219b48:                                              ; preds = %b47220  br label %b54221 222b49:                                              ; preds = %b47223  br i1 undef, label %b50, label %b52224 225b50:                                              ; preds = %b49226  br i1 undef, label %b51, label %b53227 228b51:                                              ; preds = %b50229  br label %b52230 231b52:                                              ; preds = %b51, %b49232  %v45 = add nsw i32 %v2, -1233  %v46 = icmp eq i32 %v45, 0234  br i1 %v46, label %b54, label %b7235 236b53:                                              ; preds = %b50237  call void @f0(ptr @g3, i32 %v43, i32 undef)238  unreachable239 240b54:                                              ; preds = %b52, %b48, %b8241  unreachable242 243b55:                                              ; preds = %b6, %b3244  ret i32 0245}246