brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · d6b64a5 Raw
158 lines · plain
1; RUN: llc -mtriple=hexagon -hexagon-initial-cfg-cleanup=0 -hexagon-instsimplify=0 < %s | FileCheck %s2; REQUIRES: asserts3 4; Test that the compiler doesn't assert because IMPLICIT_DEF instructions are5; are added to the same packet as a use. This test case asserts if the6; IMPLICIT_DEFs are not handled properly.7;8; r0 = IMPLICIT_DEF9; r1 = IMPLICIT_DEF10; S2_storerd_io r29, 0, d011 12; CHECK: memd(r29+#0) = r{{[0-9]+}}:{{[0-9]+}}13; CHECK: memd(r29+#0) = r{{[0-9]+}}:{{[0-9]+}}14 15define ptr @f0(ptr %a0) local_unnamed_addr {16b0:17  %v0 = tail call ptr @f1(i32 0)18  %v1 = tail call ptr @f1(i32 8)19  %v3 = load i32, ptr undef, align 420  %v4 = tail call ptr @f4(ptr %a0, i32 0, i32 %v3)21  %v5 = sub nsw i32 %v3, 022  br label %b123 24b1:                                               ; preds = %b025  switch i8 undef, label %b3 [26    i8 0, label %b427    i8 92, label %b228    i8 44, label %b429  ]30 31b2:                                               ; preds = %b132  unreachable33 34b3:                                               ; preds = %b135  unreachable36 37b4:                                               ; preds = %b1, %b138  br label %b539 40b5:                                               ; preds = %b441  br i1 undef, label %b27, label %b642 43b6:                                               ; preds = %b544  %v6 = ptrtoint ptr %v4 to i3245  %v7 = sub i32 0, %v646  %v8 = call ptr @f4(ptr nonnull %v4, i32 0, i32 %v7)47  %v9 = call ptr @f4(ptr nonnull %v4, i32 undef, i32 %v5)48  br label %b749 50b7:                                               ; preds = %b651  br i1 undef, label %b8, label %b952 53b8:                                               ; preds = %b754  br label %b955 56b9:                                               ; preds = %b8, %b757  %v10 = phi i32 [ 2, %b8 ], [ 0, %b7 ]58  %v11 = load i8, ptr %v9, align 159  switch i8 %v11, label %b12 [60    i8 43, label %b1061    i8 45, label %b1062  ]63 64b10:                                              ; preds = %b9, %b965  br i1 undef, label %b11, label %b1266 67b11:                                              ; preds = %b1068  %v12 = call i64 @f6(ptr nonnull %v9, ptr nonnull undef, i32 10)69  %v13 = load ptr, ptr undef, align 470  %v14 = ptrtoint ptr %v13 to i3271  br label %b1572 73b12:                                              ; preds = %b10, %b974  switch i8 undef, label %b14 [75    i8 0, label %b1376    i8 46, label %b1377  ]78 79b13:                                              ; preds = %b12, %b1280  br label %b1581 82b14:                                              ; preds = %b1283  unreachable84 85b15:                                              ; preds = %b13, %b1186  %v15 = phi i32 [ undef, %b13 ], [ %v14, %b11 ]87  %v16 = phi i32 [ 2, %b13 ], [ 1, %b11 ]88  %v17 = phi i64 [ undef, %b13 ], [ %v12, %b11 ]89  %v18 = call ptr @f5()90  br label %b1691 92b16:                                              ; preds = %b1593  %v19 = icmp ne i32 %v10, %v1694  %v20 = or i1 undef, %v1995  br i1 %v20, label %b17, label %b1896 97b17:                                              ; preds = %b1698  call void @f2(ptr %v8)99  br label %b27100 101b18:                                              ; preds = %b16102  br i1 undef, label %b19, label %b20103 104b19:                                              ; preds = %b18105  br label %b24106 107b20:                                              ; preds = %b18108  %v21 = add i32 %v5, -2109  %v22 = sub i32 %v21, %v7110  %v23 = add i32 %v22, %v15111  %v24 = sub i32 %v23, 0112  br label %b21113 114b21:                                              ; preds = %b20115  %v25 = icmp ne i32 %v24, 2116  %v26 = and i1 %v25, undef117  br i1 %v26, label %b22, label %b23118 119b22:                                              ; preds = %b21120  unreachable121 122b23:                                              ; preds = %b21123  br label %b24124 125b24:                                              ; preds = %b23, %b19126  %v27 = phi i64 [ 0, %b19 ], [ %v17, %b23 ]127  br label %b25128 129b25:                                              ; preds = %b24130  %v28 = icmp sgt i64 0, %v27131  br i1 %v28, label %b28, label %b26132 133b26:                                              ; preds = %b25134  unreachable135 136b27:                                              ; preds = %b17, %b5137  call void @f2(ptr %v4)138  call void @f2(ptr %v0)139  %v29 = call ptr @f3(ptr undef, ptr nonnull %a0)140  ret ptr %v1141 142b28:                                              ; preds = %b25143  call void @f2(ptr %v9)144  unreachable145}146 147declare ptr @f1(i32) local_unnamed_addr148 149declare void @f2(ptr nocapture) local_unnamed_addr150 151declare ptr @f3(ptr, ptr nocapture readonly) local_unnamed_addr152 153declare ptr @f4(ptr, i32, i32) local_unnamed_addr154 155declare ptr @f5() local_unnamed_addr156 157declare i64 @f6(ptr, ptr, i32) local_unnamed_addr158