R600/SI: Optimize SI_KILL for constant operands
[oota-llvm.git] / test / CodeGen / R600 / llvm.AMDGPU.kill.ll
index bec5cdf65f1b6d6820fbccdfcd97ad1d21c56b58..4ab6a8ae09f1670b68d14505a1cf38f55c80c79b 100644 (file)
@@ -1,13 +1,17 @@
 ; RUN: llc < %s -march=r600 -mcpu=verde -verify-machineinstrs | FileCheck --check-prefix=SI %s
 
-; SI-LABEL: @kill_gs
-; SI: V_CMPX_LE_F32
+; SI-LABEL: @kill_gs_const
+; SI-NOT: V_CMPX_LE_F32
+; SI: S_MOV_B64 exec, 0
 
-define void @kill_gs() #0 {
+define void @kill_gs_const() #0 {
 main_body:
   %0 = icmp ule i32 0, 3
   %1 = select i1 %0, float 1.000000e+00, float -1.000000e+00
   call void @llvm.AMDGPU.kill(float %1)
+  %2 = icmp ule i32 3, 0
+  %3 = select i1 %2, float 1.000000e+00, float -1.000000e+00
+  call void @llvm.AMDGPU.kill(float %3)
   ret void
 }