;RUN: llc < %s -march=r600 -mcpu=cayman -stress-sched -verify-misched

define void @main() {
main_body:
  %0 = load <4 x float> addrspace(9)* null
  %1 = extractelement <4 x float> %0, i32 3
  %2 = fptosi float %1 to i32
  %3 = bitcast i32 %2 to float
  %4 = load <4 x float> addrspace(9)* null
  %5 = extractelement <4 x float> %4, i32 0
  %6 = load <4 x float> addrspace(9)* null
  %7 = extractelement <4 x float> %6, i32 1
  %8 = load <4 x float> addrspace(9)* null
  %9 = extractelement <4 x float> %8, i32 2
  br label %LOOP

LOOP:                                             ; preds = %ENDIF, %main_body
  %temp4.0 = phi float [ %5, %main_body ], [ %temp5.0, %ENDIF ]
  %temp5.0 = phi float [ %7, %main_body ], [ %temp6.0, %ENDIF ]
  %temp6.0 = phi float [ %9, %main_body ], [ %temp4.0, %ENDIF ]
  %temp8.0 = phi float [ 0.000000e+00, %main_body ], [ %27, %ENDIF ]
  %10 = bitcast float %temp8.0 to i32
  %11 = bitcast float %3 to i32
  %12 = icmp sge i32 %10, %11
  %13 = sext i1 %12 to i32
  %14 = bitcast i32 %13 to float
  %15 = bitcast float %14 to i32
  %16 = icmp ne i32 %15, 0
  br i1 %16, label %IF, label %ENDIF

IF:                                               ; preds = %LOOP
  %17 = call float @llvm.AMDIL.clamp.(float %temp4.0, float 0.000000e+00, float 1.000000e+00)
  %18 = call float @llvm.AMDIL.clamp.(float %temp5.0, float 0.000000e+00, float 1.000000e+00)
  %19 = call float @llvm.AMDIL.clamp.(float %temp6.0, float 0.000000e+00, float 1.000000e+00)
  %20 = call float @llvm.AMDIL.clamp.(float 1.000000e+00, float 0.000000e+00, float 1.000000e+00)
  %21 = insertelement <4 x float> undef, float %17, i32 0
  %22 = insertelement <4 x float> %21, float %18, i32 1
  %23 = insertelement <4 x float> %22, float %19, i32 2
  %24 = insertelement <4 x float> %23, float %20, i32 3
  call void @llvm.R600.store.swizzle(<4 x float> %24, i32 0, i32 0)
  ret void

ENDIF:                                            ; preds = %LOOP
  %25 = bitcast float %temp8.0 to i32
  %26 = add i32 %25, 1
  %27 = bitcast i32 %26 to float
  br label %LOOP
}

declare float @llvm.AMDIL.clamp.(float, float, float) #0

declare void @llvm.R600.store.swizzle(<4 x float>, i32, i32)

attributes #0 = { readnone }
