A future commit will change how some of the value names in the IR are generated which causes these tests to break in their current form. The script generates checks with regular expressions so it should be immune. llvm-svn: 317023
27 lines
782 B
LLVM
27 lines
782 B
LLVM
; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
|
|
; RUN: opt -S -simplifycfg < %s | FileCheck %s
|
|
|
|
%ST = type { i8, i8 }
|
|
|
|
define i8* @test1(%ST* %x, i8* %y) nounwind {
|
|
; CHECK-LABEL: @test1(
|
|
; CHECK-NEXT: entry:
|
|
; CHECK-NEXT: [[CMP:%.*]] = icmp eq %ST* [[X:%.*]], null
|
|
; CHECK-NEXT: [[INCDEC_PTR:%.*]] = getelementptr [[ST:%.*]], %ST* [[X]], i32 0, i32 1
|
|
; CHECK-NEXT: [[INCDEC_PTR_Y:%.*]] = select i1 [[CMP]], i8* [[INCDEC_PTR]], i8* [[Y:%.*]]
|
|
; CHECK-NEXT: ret i8* [[INCDEC_PTR_Y]]
|
|
;
|
|
entry:
|
|
%cmp = icmp eq %ST* %x, null
|
|
br i1 %cmp, label %if.then, label %if.end
|
|
|
|
if.then:
|
|
%incdec.ptr = getelementptr %ST, %ST* %x, i32 0, i32 1
|
|
br label %if.end
|
|
|
|
if.end:
|
|
%x.addr = phi i8* [ %incdec.ptr, %if.then ], [ %y, %entry ]
|
|
ret i8* %x.addr
|
|
|
|
}
|