102 lines · plain
1; RUN: opt < %s -passes=correlated-propagation -S | FileCheck %s2 3; Check that debug locations are preserved. For more info see:4; https://llvm.org/docs/SourceLevelDebugging.html#fixing-errors5; RUN: opt < %s -enable-debugify -passes=correlated-propagation -S 2>&1 | \6; RUN: FileCheck %s -check-prefix=DEBUG7; DEBUG: CheckModuleDebugify: PASS8 9; CHECK-LABEL: @test_nop10define void @test_nop(i32 %n) {11; CHECK: udiv i32 %n, 10012 %div = udiv i32 %n, 10013 ret void14}15 16; CHECK-LABEL: @test1(17define void @test1(i32 %n) {18entry:19 %cmp = icmp ule i32 %n, 6553520 br i1 %cmp, label %bb, label %exit21 22bb:23; CHECK: udiv i1624 %div = udiv i32 %n, 10025 br label %exit26 27exit:28 ret void29}30 31; CHECK-LABEL: @test2(32define void @test2(i32 %n) {33entry:34 %cmp = icmp ule i32 %n, 6553635 br i1 %cmp, label %bb, label %exit36 37bb:38; CHECK: udiv i32 %n, 10039 %div = udiv i32 %n, 10040 br label %exit41 42exit:43 ret void44}45 46; CHECK-LABEL: @test3(47define void @test3(i32 %m, i32 %n) {48entry:49 %cmp1 = icmp ult i32 %m, 6553550 %cmp2 = icmp ult i32 %n, 6553551 %cmp = and i1 %cmp1, %cmp252 br i1 %cmp, label %bb, label %exit53 54bb:55; CHECK: udiv i1656 %div = udiv i32 %m, %n57 br label %exit58 59exit:60 ret void61}62 63; CHECK-LABEL: @test4(64define void @test4(i32 %m, i32 %n) {65entry:66 %cmp1 = icmp ult i32 %m, 6553567 %cmp2 = icmp ule i32 %n, 6553668 %cmp = and i1 %cmp1, %cmp269 br i1 %cmp, label %bb, label %exit70 71bb:72; CHECK: udiv i32 %m, %n73 %div = udiv i32 %m, %n74 br label %exit75 76exit:77 ret void78}79 80; CHECK-LABEL: @test581define void @test5(i32 %n) {82 %trunc = and i32 %n, 6553583 ; CHECK: udiv i1684 %div = udiv i32 %trunc, 4285 ret void86}87 88; CHECK-LABEL: @test689define void @test6(i32 %n) {90entry:91 %cmp = icmp ule i32 %n, 25592 br i1 %cmp, label %bb, label %exit93 94bb:95; CHECK: udiv i896 %div = sdiv i32 %n, 10097 br label %exit98 99exit:100 ret void101}102