[PATCH] R600/SI: Set HasMultipleConditionRegisters

Tom Stellard thomas.stellard at amd.com
Thu Apr 30 19:46:17 PDT 2015


The shader-db shows this is a slight improvement overall.  However, I did find a regression case:

  define void @test(float addrspace(1)* %out) {
  entry:
    br i1 undef, label %IF0, label %ENDIF
  
  IF0:                                              ; preds = %entry
    %cmp1 = fcmp oeq float undef, 0.000000e+00
    br i1 %cmp1, label %IF1, label %ENDIF
  
  IF1:                                              ; preds = %IF0
    %cmp2 = xor i1 %cmp1, true
    br label %ENDIF
  
  ENDIF:                                            ; preds = %IF1, %IF0, %entry
    %tmp0 = phi i1 [ true, %entry ], [ %cmp2, %IF1 ], [ false, %IF0 ]
    %tmp2 = select i1 %tmp0, float undef, float 0.000000e+00
    store float %tmp2, float addrspace(1)* %out
    ret void
  }


http://reviews.llvm.org/D9419

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/






More information about the llvm-commits mailing list