brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.5 KiB · c853693 Raw
128 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals --version 22; RUN: opt -passes=newgvn -S < %s | FileCheck %s3 4define i32 @test1(ptr %p) {5; CHECK-LABEL: define i32 @test16; CHECK-SAME: (ptr [[P:%.*]]) {7; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG0:![0-9]+]]8; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]9; CHECK-NEXT:    ret i32 [[C]]10;11  %a = load i32, ptr %p, !range !012  %b = load i32, ptr %p, !range !013  %c = add i32 %a, %b14  ret i32 %c15}16 17define i32 @test2(ptr %p) {18; CHECK-LABEL: define i32 @test219; CHECK-SAME: (ptr [[P:%.*]]) {20; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 421; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]22; CHECK-NEXT:    ret i32 [[C]]23;24  %a = load i32, ptr %p, !range !025  %b = load i32, ptr %p26  %c = add i32 %a, %b27  ret i32 %c28}29 30define i32 @test3(ptr %p) {31; CHECK-LABEL: define i32 @test332; CHECK-SAME: (ptr [[P:%.*]]) {33; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG1:![0-9]+]]34; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]35; CHECK-NEXT:    ret i32 [[C]]36;37  %a = load i32, ptr %p, !range !038  %b = load i32, ptr %p, !range !139  %c = add i32 %a, %b40  ret i32 %c41}42 43define i32 @test4(ptr %p) {44; CHECK-LABEL: define i32 @test445; CHECK-SAME: (ptr [[P:%.*]]) {46; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG2:![0-9]+]]47; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]48; CHECK-NEXT:    ret i32 [[C]]49;50  %a = load i32, ptr %p, !range !051  %b = load i32, ptr %p, !range !252  %c = add i32 %a, %b53  ret i32 %c54}55 56define i32 @test5(ptr %p) {57; CHECK-LABEL: define i32 @test558; CHECK-SAME: (ptr [[P:%.*]]) {59; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG3:![0-9]+]]60; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]61; CHECK-NEXT:    ret i32 [[C]]62;63  %a = load i32, ptr %p, !range !364  %b = load i32, ptr %p, !range !465  %c = add i32 %a, %b66  ret i32 %c67}68 69define i32 @test6(ptr %p) {70; CHECK-LABEL: define i32 @test671; CHECK-SAME: (ptr [[P:%.*]]) {72; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG4:![0-9]+]]73; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]74; CHECK-NEXT:    ret i32 [[C]]75;76  %a = load i32, ptr %p, !range !577  %b = load i32, ptr %p, !range !678  %c = add i32 %a, %b79  ret i32 %c80}81 82define i32 @test7(ptr %p) {83; CHECK-LABEL: define i32 @test784; CHECK-SAME: (ptr [[P:%.*]]) {85; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 4, !range [[RNG5:![0-9]+]]86; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]87; CHECK-NEXT:    ret i32 [[C]]88;89  %a = load i32, ptr %p, !range !790  %b = load i32, ptr %p, !range !891  %c = add i32 %a, %b92  ret i32 %c93}94 95define i32 @test8(ptr %p) {96; CHECK-LABEL: define i32 @test897; CHECK-SAME: (ptr [[P:%.*]]) {98; CHECK-NEXT:    [[A:%.*]] = load i32, ptr [[P]], align 499; CHECK-NEXT:    [[C:%.*]] = add i32 [[A]], [[A]]100; CHECK-NEXT:    ret i32 [[C]]101;102  %a = load i32, ptr %p, !range !9103  %b = load i32, ptr %p, !range !10104  %c = add i32 %a, %b105  ret i32 %c106}107 108 109!0 = !{i32 0, i32 2}110!1 = !{i32 3, i32 5}111!2 = !{i32 2, i32 5}112!3 = !{i32 -5, i32 -2}113!4 = !{i32 1, i32 5}114!5 = !{i32 10, i32 1}115!6 = !{i32 12, i32 16}116!7 = !{i32 1, i32 2, i32 3, i32 4}117!8 = !{i32 5, i32 1}118!9 = !{i32 1, i32 5}119!10 = !{i32 5, i32 1}120;.121; CHECK: [[RNG0]] = !{i32 0, i32 2}122; CHECK: [[RNG1]] = !{i32 0, i32 2, i32 3, i32 5}123; CHECK: [[RNG2]] = !{i32 0, i32 5}124; CHECK: [[RNG3]] = !{i32 -5, i32 -2, i32 1, i32 5}125; CHECK: [[RNG4]] = !{i32 10, i32 1}126; CHECK: [[RNG5]] = !{i32 3, i32 4, i32 5, i32 2}127;.128