mirror of
https://github.com/RPCS3/llvm.git
synced 2026-08-26 18:26:51 -04:00
76a40dc3f3
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@317023 91177308-0d34-0410-b5e6-96231b3b80d8
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
|
|
|
|
}
|