brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · dc447e6 Raw
56 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=instcombine -S | FileCheck %s3 4 5declare ptr @memrchr(ptr, i32, i32)6 7define ptr @test1(ptr %str, i32 %c, i32 %n) {8; CHECK-LABEL: @test1(9; CHECK-NEXT:    [[RET:%.*]] = call ptr @memrchr(ptr [[STR:%.*]], i32 [[C:%.*]], i32 [[N:%.*]])10; CHECK-NEXT:    ret ptr [[RET]]11;12 13  %ret = call ptr @memrchr(ptr %str, i32 %c, i32 %n)14  ret ptr %ret15}16 17define ptr @test2(ptr %str, i32 %c, i32 %n) {18; CHECK-LABEL: @test2(19; CHECK-NEXT:    [[RET:%.*]] = call ptr @memrchr(ptr nonnull [[STR:%.*]], i32 [[C:%.*]], i32 [[N:%.*]])20; CHECK-NEXT:    ret ptr [[RET]]21;22 23  %ret = call ptr @memrchr(ptr nonnull %str, i32 %c, i32 %n)24  ret ptr %ret25}26 27define ptr @test3(ptr %str, i32 %c) {28; CHECK-LABEL: @test3(29; CHECK-NEXT:    [[RET:%.*]] = call ptr @memrchr(ptr [[STR:%.*]], i32 [[C:%.*]], i32 5)30; CHECK-NEXT:    ret ptr [[RET]]31;32 33  %ret = call ptr @memrchr(ptr %str, i32 %c, i32 5)34  ret ptr %ret35}36 37define ptr @test4(ptr %str, i32 %c) null_pointer_is_valid {38; CHECK-LABEL: @test4(39; CHECK-NEXT:    [[RET:%.*]] = call ptr @memrchr(ptr [[STR:%.*]], i32 [[C:%.*]], i32 5)40; CHECK-NEXT:    ret ptr [[RET]]41;42 43  %ret = call ptr @memrchr(ptr %str, i32 %c, i32 5)44  ret ptr %ret45}46 47define ptr @test5(ptr %str, i32 %c) {48; CHECK-LABEL: @test5(49; CHECK-NEXT:    [[RET:%.*]] = call ptr @memrchr(ptr [[STR:%.*]], i32 [[C:%.*]], i32 0)50; CHECK-NEXT:    ret ptr [[RET]]51;52 53  %ret = call ptr @memrchr(ptr %str, i32 %c, i32 0)54  ret ptr %ret55}56