brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.2 KiB · be3c33e Raw
171 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -passes=instcombine -S < %s | FileCheck %s3 4define void @test01(ptr %ptr0, ptr %ptr1) {5; CHECK-LABEL: @test01(6; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 17; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 18; CHECK-NEXT:    ret void9;10  call void @llvm.experimental.noalias.scope.decl(metadata !0)11  store i8 42, ptr %ptr012  store i8 43, ptr %ptr113  ret void14}15 16define void @test02_keep(ptr %ptr0, ptr %ptr1) {17; CHECK-LABEL: @test02_keep(18; CHECK-NEXT:    call void @llvm.experimental.noalias.scope.decl(metadata !0)19; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !020; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 1, !noalias !321; CHECK-NEXT:    ret void22;23  call void @llvm.experimental.noalias.scope.decl(metadata !0)24  store i8 42, ptr %ptr0, !alias.scope !025  store i8 43, ptr %ptr1, !noalias !526  ret void27}28 29define void @test03(ptr %ptr0, ptr %ptr1) {30; CHECK-LABEL: @test03(31; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !532; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 1, !noalias !333; CHECK-NEXT:    ret void34;35  call void @llvm.experimental.noalias.scope.decl(metadata !0)36  store i8 42, ptr %ptr0, !alias.scope !337  store i8 43, ptr %ptr1, !noalias !538  ret void39}40 41define void @test04_keep(ptr %ptr0, ptr %ptr1) {42; CHECK-LABEL: @test04_keep(43; CHECK-NEXT:    call void @llvm.experimental.noalias.scope.decl(metadata !0)44; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !345; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 1, !noalias !346; CHECK-NEXT:    ret void47;48  call void @llvm.experimental.noalias.scope.decl(metadata !0)49  store i8 42, ptr %ptr0, !alias.scope !550  store i8 43, ptr %ptr1, !noalias !551  ret void52}53 54define void @test05_keep(ptr %ptr0, ptr %ptr1) {55; CHECK-LABEL: @test05_keep(56; CHECK-NEXT:    call void @llvm.experimental.noalias.scope.decl(metadata !0)57; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !358; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 1, !noalias !059; CHECK-NEXT:    ret void60;61  call void @llvm.experimental.noalias.scope.decl(metadata !0)62  store i8 42, ptr %ptr0, !alias.scope !563  store i8 43, ptr %ptr1, !noalias !064  ret void65}66 67define void @test06(ptr %ptr0, ptr %ptr1) {68; CHECK-LABEL: @test06(69; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !370; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 1, !noalias !571; CHECK-NEXT:    ret void72;73  call void @llvm.experimental.noalias.scope.decl(metadata !0)74  store i8 42, ptr %ptr0, !alias.scope !575  store i8 43, ptr %ptr1, !noalias !376  ret void77}78 79define void @test07(ptr %ptr0, ptr %ptr1) {80; CHECK-LABEL: @test07(81; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !082; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 1, !noalias !583; CHECK-NEXT:    ret void84;85  call void @llvm.experimental.noalias.scope.decl(metadata !0)86  store i8 42, ptr %ptr0, !alias.scope !087  store i8 43, ptr %ptr1, !noalias !388  ret void89}90 91define void @test08(ptr %ptr0, ptr %ptr1) {92; CHECK-LABEL: @test08(93; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !594; CHECK-NEXT:    store i8 43, ptr [[PTR1:%.*]], align 1, !noalias !095; CHECK-NEXT:    ret void96;97  call void @llvm.experimental.noalias.scope.decl(metadata !0)98  store i8 42, ptr %ptr0, !alias.scope !399  store i8 43, ptr %ptr1, !noalias !0100  ret void101}102 103define void @test11(ptr %ptr0) {104; CHECK-LABEL: @test11(105; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !0106; CHECK-NEXT:    ret void107;108  call void @llvm.experimental.noalias.scope.decl(metadata !0)109  store i8 42, ptr %ptr0, !alias.scope !0110  ret void111}112 113define void @test12(ptr %ptr0) {114; CHECK-LABEL: @test12(115; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !5116; CHECK-NEXT:    ret void117;118  call void @llvm.experimental.noalias.scope.decl(metadata !0)119  store i8 42, ptr %ptr0, !alias.scope !3120  ret void121}122 123define void @test13(ptr %ptr0) {124; CHECK-LABEL: @test13(125; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !alias.scope !3126; CHECK-NEXT:    ret void127;128  call void @llvm.experimental.noalias.scope.decl(metadata !0)129  store i8 42, ptr %ptr0, !alias.scope !5130  ret void131}132 133define void @test14(ptr %ptr0) {134; CHECK-LABEL: @test14(135; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !noalias !0136; CHECK-NEXT:    ret void137;138  call void @llvm.experimental.noalias.scope.decl(metadata !0)139  store i8 42, ptr %ptr0, !noalias !0140  ret void141}142 143define void @test15(ptr %ptr0) {144; CHECK-LABEL: @test15(145; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !noalias !5146; CHECK-NEXT:    ret void147;148  call void @llvm.experimental.noalias.scope.decl(metadata !0)149  store i8 42, ptr %ptr0, !noalias !3150  ret void151}152 153define void @test16(ptr %ptr0) {154; CHECK-LABEL: @test16(155; CHECK-NEXT:    store i8 42, ptr [[PTR0:%.*]], align 1, !noalias !3156; CHECK-NEXT:    ret void157;158  call void @llvm.experimental.noalias.scope.decl(metadata !0)159  store i8 42, ptr %ptr0, !noalias !5160  ret void161}162 163declare void @llvm.experimental.noalias.scope.decl(metadata)164 165!0 = !{ !1 }166!1 = distinct !{ !1, !2 }167!2 = distinct !{ !2 }168!3 = !{ !4 }169!4 = distinct !{ !4, !2 }170!5 = !{ !1, !4 }171