From 0f8e4a5ed0e556af82592f7cae4a6082ab238da3 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Mon, 5 Oct 2020 21:09:53 +0200 Subject: [PATCH] [InstCombine] Add test for PR47730 --- llvm/test/Transforms/InstCombine/select.ll | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/llvm/test/Transforms/InstCombine/select.ll b/llvm/test/Transforms/InstCombine/select.ll index df50647..326050c 100644 --- a/llvm/test/Transforms/InstCombine/select.ll +++ b/llvm/test/Transforms/InstCombine/select.ll @@ -2725,6 +2725,19 @@ define i32 @select_replacement_loop2(i32 %arg, i32 %arg2) { ret i32 %sel } +define i8* @select_replacement_gep_inbounds(i8* %base, i64 %offset) { +; CHECK-LABEL: @select_replacement_gep_inbounds( +; CHECK-NEXT: [[CMP:%.*]] = icmp eq i64 [[OFFSET:%.*]], 0 +; CHECK-NEXT: [[GEP:%.*]] = getelementptr inbounds i8, i8* [[BASE:%.*]], i64 [[OFFSET]] +; CHECK-NEXT: [[SEL:%.*]] = select i1 [[CMP]], i8* [[BASE]], i8* [[GEP]] +; CHECK-NEXT: ret i8* [[SEL]] +; + %cmp = icmp eq i64 %offset, 0 + %gep = getelementptr inbounds i8, i8* %base, i64 %offset + %sel = select i1 %cmp, i8* %base, i8* %gep + ret i8* %sel +} + declare void @use(i1) declare void @use_i8(i8) declare i32 @llvm.cttz.i32(i32, i1 immarg) -- 2.7.4