[ARM] Better OR's for MVE compares
[llvm-core.git] / test / Transforms / SimplifyCFG / select-gep.ll
blob66808c92816badedfd5932e887e794dfebae13f4
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt -S -simplifycfg < %s | FileCheck %s
4 %ST = type { i8, i8 }
6 define i8* @test1(%ST* %x, i8* %y) nounwind {
7 ; CHECK-LABEL: @test1(
8 ; CHECK-NEXT:  entry:
9 ; CHECK-NEXT:    [[CMP:%.*]] = icmp eq %ST* [[X:%.*]], null
10 ; CHECK-NEXT:    [[INCDEC_PTR:%.*]] = getelementptr [[ST:%.*]], %ST* [[X]], i32 0, i32 1
11 ; CHECK-NEXT:    [[INCDEC_PTR_Y:%.*]] = select i1 [[CMP]], i8* [[INCDEC_PTR]], i8* [[Y:%.*]]
12 ; CHECK-NEXT:    ret i8* [[INCDEC_PTR_Y]]
14 entry:
15   %cmp = icmp eq %ST* %x, null
16   br i1 %cmp, label %if.then, label %if.end
18 if.then:
19   %incdec.ptr = getelementptr %ST, %ST* %x, i32 0, i32 1
20   br label %if.end
22 if.end:
23   %x.addr = phi i8* [ %incdec.ptr, %if.then ], [ %y, %entry ]
24   ret i8* %x.addr