R600: Add support for native control flow

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178505 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Vincent Lejeune
2013-04-01 21:48:05 +00:00
parent 88524e3f6c
commit 08001a5a15
7 changed files with 397 additions and 7 deletions

View File

@@ -5,9 +5,10 @@
; and the PREDICATE_BREAK in this loop.
; CHECK: @loop_ge
; CHECK: WHILE
; CHECK: LOOP_START_DX10
; CHECK: PRED_SET
; CHECK-NEXT: PREDICATED_BREAK
; CHECK-NEXT: JUMP
; CHECK-NEXT: LOOP_BREAK
define void @loop_ge(i32 addrspace(1)* nocapture %out, i32 %iterations) nounwind {
entry:
%cmp5 = icmp sgt i32 %iterations, 0

View File

@@ -45,10 +45,12 @@ ENDIF:
}
; CHECK: @nested_if
; CHECK: IF_PREDICATE_SET
; CHECK: ALU_PUSH_BEFORE
; CHECK: PRED_SET{{[EGN][ET]*}}_INT Exec
; CHECK: JUMP
; CHECK: PRED_SET{{[EGN][ET]*}}_INT Pred,
; CHECK: LSHL T{{[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}, 1, 0(0.000000e+00) Pred_sel
; CHECK: ENDIF
; CHECK: POP
define void @nested_if(i32 addrspace(1)* %out, i32 %in) {
entry:
%0 = icmp sgt i32 %in, 0
@@ -70,11 +72,13 @@ ENDIF:
}
; CHECK: @nested_if_else
; CHECK: IF_PREDICATE_SET
; CHECK: ALU_PUSH_BEFORE
; CHECK: PRED_SET{{[EGN][ET]*}}_INT Exec
; CHECK: JUMP
; CHECK: PRED_SET{{[EGN][ET]*}}_INT Pred,
; CHECK: LSH{{[LR] T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}, 1, 0(0.000000e+00) Pred_sel
; CHECK: LSH{{[LR] T[0-9]+\.[XYZW], T[0-9]+\.[XYZW]}}, 1, 0(0.000000e+00) Pred_sel
; CHECK: ENDIF
; CHECK: POP
define void @nested_if_else(i32 addrspace(1)* %out, i32 %in) {
entry:
%0 = icmp sgt i32 %in, 0