;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 = bitcast float %3 to i32
  %5 = sdiv i32 %4, 4
  %6 = bitcast i32 %5 to float
  %7 = bitcast float %6 to i32
  %8 = mul i32 %7, 4
  %9 = bitcast i32 %8 to float
  %10 = bitcast float %9 to i32
  %11 = sub i32 0, %10
  %12 = bitcast i32 %11 to float
  %13 = bitcast float %3 to i32
  %14 = bitcast float %12 to i32
  %15 = add i32 %13, %14
  %16 = bitcast i32 %15 to float
  %17 = load <4 x float> addrspace(9)* null
  %18 = extractelement <4 x float> %17, i32 0
  %19 = load <4 x float> addrspace(9)* null
  %20 = extractelement <4 x float> %19, i32 1
  %21 = load <4 x float> addrspace(9)* null
  %22 = extractelement <4 x float> %21, i32 2
  br label %LOOP

LOOP:                                             ; preds = %IF31, %main_body
  %temp12.0 = phi float [ 0.000000e+00, %main_body ], [ %47, %IF31 ]
  %temp6.0 = phi float [ %22, %main_body ], [ %temp6.1, %IF31 ]
  %temp5.0 = phi float [ %20, %main_body ], [ %temp5.1, %IF31 ]
  %temp4.0 = phi float [ %18, %main_body ], [ %temp4.1, %IF31 ]
  %23 = bitcast float %temp12.0 to i32
  %24 = bitcast float %6 to i32
  %25 = icmp sge i32 %23, %24
  %26 = sext i1 %25 to i32
  %27 = bitcast i32 %26 to float
  %28 = bitcast float %27 to i32
  %29 = icmp ne i32 %28, 0
  br i1 %29, label %IF, label %LOOP29

IF:                                               ; preds = %LOOP
  %30 = call float @llvm.AMDIL.clamp.(float %temp4.0, float 0.000000e+00, float 1.000000e+00)
  %31 = call float @llvm.AMDIL.clamp.(float %temp5.0, float 0.000000e+00, float 1.000000e+00)
  %32 = call float @llvm.AMDIL.clamp.(float %temp6.0, float 0.000000e+00, float 1.000000e+00)
  %33 = call float @llvm.AMDIL.clamp.(float 1.000000e+00, float 0.000000e+00, float 1.000000e+00)
  %34 = insertelement <4 x float> undef, float %30, i32 0
  %35 = insertelement <4 x float> %34, float %31, i32 1
  %36 = insertelement <4 x float> %35, float %32, i32 2
  %37 = insertelement <4 x float> %36, float %33, i32 3
  call void @llvm.R600.store.swizzle(<4 x float> %37, i32 0, i32 0)
  ret void

LOOP29:                                           ; preds = %LOOP, %ENDIF30
  %temp6.1 = phi float [ %temp4.1, %ENDIF30 ], [ %temp6.0, %LOOP ]
  %temp5.1 = phi float [ %temp6.1, %ENDIF30 ], [ %temp5.0, %LOOP ]
  %temp4.1 = phi float [ %temp5.1, %ENDIF30 ], [ %temp4.0, %LOOP ]
  %temp20.0 = phi float [ %50, %ENDIF30 ], [ 0.000000e+00, %LOOP ]
  %38 = bitcast float %temp20.0 to i32
  %39 = bitcast float %16 to i32
  %40 = icmp sge i32 %38, %39
  %41 = sext i1 %40 to i32
  %42 = bitcast i32 %41 to float
  %43 = bitcast float %42 to i32
  %44 = icmp ne i32 %43, 0
  br i1 %44, label %IF31, label %ENDIF30

IF31:                                             ; preds = %LOOP29
  %45 = bitcast float %temp12.0 to i32
  %46 = add i32 %45, 1
  %47 = bitcast i32 %46 to float
  br label %LOOP

ENDIF30:                                          ; preds = %LOOP29
  %48 = bitcast float %temp20.0 to i32
  %49 = add i32 %48, 1
  %50 = bitcast i32 %49 to float
  br label %LOOP29
}

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

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

attributes #0 = { readnone }
