89 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4declare void @c(i32 noundef)5declare void @d(ptr dereferenceable(1))6declare void @e(i32)7declare void @f(ptr)8 9define void @test1() {10; CHECK-LABEL: @test1(11; CHECK-NEXT: call void @c(i32 undef)12; CHECK-NEXT: ret void13;14 call void @c(i32 undef)15 ret void16}17 18define void @test2() {19; CHECK-LABEL: @test2(20; CHECK-NEXT: call void @c(i32 poison)21; CHECK-NEXT: ret void22;23 call void @c(i32 poison)24 ret void25}26 27define void @test3() {28; CHECK-LABEL: @test3(29; CHECK-NEXT: call void @e(i32 noundef undef)30; CHECK-NEXT: ret void31;32 call void @e(i32 noundef undef)33 ret void34}35 36define void @test4() {37; CHECK-LABEL: @test4(38; CHECK-NEXT: call void @e(i32 noundef poison)39; CHECK-NEXT: ret void40;41 call void @e(i32 noundef poison)42 ret void43}44 45define void @test5() {46; CHECK-LABEL: @test5(47; CHECK-NEXT: call void @d(ptr undef)48; CHECK-NEXT: ret void49;50 call void @d(ptr undef)51 ret void52}53 54define void @test6() {55; CHECK-LABEL: @test6(56; CHECK-NEXT: call void @d(ptr poison)57; CHECK-NEXT: ret void58;59 call void @d(ptr poison)60 ret void61}62 63define void @test7() {64; CHECK-LABEL: @test7(65; CHECK-NEXT: call void @f(ptr dereferenceable(1) undef)66; CHECK-NEXT: ret void67;68 call void @f(ptr dereferenceable(1) undef)69 ret void70}71 72define void @test8() {73; CHECK-LABEL: @test8(74; CHECK-NEXT: call void @f(ptr dereferenceable(1) poison)75; CHECK-NEXT: ret void76;77 call void @f(ptr dereferenceable(1) poison)78 ret void79}80 81define void @test_mismatched_call() {82; CHECK-LABEL: @test_mismatched_call(83; CHECK-NEXT: call void @e(i8 poison)84; CHECK-NEXT: ret void85;86 call void @e(i8 poison)87 ret void88}89