brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.8 KiB · 6aafff7 Raw
93 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 62; RUN: opt -S -passes='loop-mssa(licm)' < %s | FileCheck %s3@e = external dso_local global ptr, align 84 5define void @main(i1 %arg, ptr %arg1) {6; CHECK-LABEL: define void @main(7; CHECK-SAME: i1 [[ARG:%.*]], ptr [[ARG1:%.*]]) {8; CHECK-NEXT:  [[ENTRY:.*:]]9; CHECK-NEXT:    br label %[[LOOP1:.*]]10; CHECK:       [[LOOP1]]:11; CHECK-NEXT:    br label %[[LOOP2:.*]]12; CHECK:       [[LOOP2]]:13; CHECK-NEXT:    br i1 [[ARG]], label %[[LOOP2_LATCH:.*]], label %[[LOOP_LATCH:.*]]14; CHECK:       [[LOOP2_LATCH]]:15; CHECK-NEXT:    store i32 0, ptr [[ARG1]], align 416; CHECK-NEXT:    br label %[[LOOP2]]17; CHECK:       [[LOOP_LATCH]]:18; CHECK-NEXT:    store ptr null, ptr @e, align 8, !tbaa [[ANYPTR_TBAA0:![0-9]+]]19; CHECK-NEXT:    [[PTR:%.*]] = load ptr, ptr @e, align 8, !tbaa [[ANYPTR_TBAA0]]20; CHECK-NEXT:    store i32 0, ptr [[PTR]], align 4, !tbaa [[INT_TBAA4:![0-9]+]]21; CHECK-NEXT:    br label %[[LOOP1]]22;23entry:24  br label %loop125 26loop1:27  br label %loop228 29loop2:30  br i1 %arg, label %loop2.latch, label %loop.latch31 32loop2.latch:33  store i32 0, ptr %arg1, align 434  br label %loop235 36loop.latch:37  store ptr null, ptr @e, align 8, !tbaa !038  %ptr = load ptr, ptr @e, align 8, !tbaa !039  store i32 0, ptr %ptr, align 4, !tbaa !440  br label %loop141}42 43define void @store_null(i1 %arg) {44; CHECK-LABEL: define void @store_null(45; CHECK-SAME: i1 [[ARG:%.*]]) {46; CHECK-NEXT:  [[ENTRY:.*:]]47; CHECK-NEXT:    br label %[[LOOP1:.*]]48; CHECK:       [[LOOP1]]:49; CHECK-NEXT:    br label %[[LOOP2:.*]]50; CHECK:       [[LOOP2]]:51; CHECK-NEXT:    br i1 [[ARG]], label %[[LOOP2_LATCH:.*]], label %[[LOOP_LATCH:.*]]52; CHECK:       [[LOOP2_LATCH]]:53; CHECK-NEXT:    store i32 0, ptr null, align 454; CHECK-NEXT:    br label %[[LOOP2]]55; CHECK:       [[LOOP_LATCH]]:56; CHECK-NEXT:    store i32 0, ptr null, align 4, !tbaa [[INT_TBAA4]]57; CHECK-NEXT:    br label %[[LOOP1]]58;59entry:60  br label %loop161 62loop1:63  br label %loop264 65loop2:66  br i1 %arg, label %loop2.latch, label %loop.latch67 68loop2.latch:69  store i32 0, ptr null, align 470  br label %loop271 72loop.latch:73  store ptr null, ptr @e, align 8, !tbaa !074  %ptr = load ptr, ptr @e, align 8, !tbaa !075  store i32 0, ptr %ptr, align 4, !tbaa !476  br label %loop177}78 79!0 = !{!1, !1, i64 0}80!1 = !{!"any pointer", !2, i64 0}81!2 = !{!"omnipotent char", !3, i64 0}82!3 = !{!"Simple C/C++ TBAA"}83!4 = !{!5, !5, i64 0}84!5 = !{!"int", !2, i64 0}85;.86; CHECK: [[ANYPTR_TBAA0]] = !{[[META1:![0-9]+]], [[META1]], i64 0}87; CHECK: [[META1]] = !{!"any pointer", [[META2:![0-9]+]], i64 0}88; CHECK: [[META2]] = !{!"omnipotent char", [[META3:![0-9]+]], i64 0}89; CHECK: [[META3]] = !{!"Simple C/C++ TBAA"}90; CHECK: [[INT_TBAA4]] = !{[[META5:![0-9]+]], [[META5]], i64 0}91; CHECK: [[META5]] = !{!"int", [[META2]], i64 0}92;.93