[LLVMdev] RegisterCoalescing Pass seems to ignore part of CFG.

Vincent Lejeune vljn at ovi.com
Thu Oct 25 08:54:50 PDT 2012



> 
> PHIElim and TwoAddress passes leave SSA form.
> May be a missed something in your code but %vreg48 seems to be there 
> after PHI elimination. PHIElim tags those kind of registers as being 
> PHIJoin regs, updating LiveVariables pass, so the regcoalescer is aware 
> of them (some SSA info is still alive but the reg coalescer will 
> invalidate that information after joining intervals). PHIJoin regs 
> doesn't get modified by any other instruction than copies.
> Anyway, IMHO if your code is faulty there should be a bug somewhere else.
> 


It seems the PhiElim is working correctly, the output of --debug-only=regalloc shows that %vreg48 is a phi-join register, and intervals looks correct to me :

********** COMPUTING LIVE INTERVALS **********
********** Function: main
BB#0:# derived from 
16B%vreg17<def> = COPY %T1_W<kill>; R600_TReg32:%vreg17
register: %vreg17 +[16r,352r:0)
32B%vreg16<def> = COPY %T1_Z<kill>; R600_TReg32:%vreg16
register: %vreg16 +[32r,240r:0)
48B%vreg15<def> = COPY %T1_Y<kill>; R600_TReg32:%vreg15
register: %vreg15 +[48r,160r:0)
64B%vreg14<def> = COPY %T1_X<kill>; R600_TReg32:%vreg14
register: %vreg14 +[64r,96r:0)
80B%vreg18<def> = COPY %C1_X; R600_Reg32:%vreg18
register: %vreg18 +[80r,128r:0)
96B%vreg19:sel_x<def,read-undef> = COPY %vreg14<kill>; R600_Reg128:%vreg19 R600_TReg32:%vreg14
register: %vreg19 +[96r,144r:0)
112B%vreg2<def> = COPY %C1_Y; R600_Reg32:%vreg2
register: %vreg2 +[112r,400r:0)
128B%vreg21:sel_x<def,read-undef> = COPY %vreg18<kill>; R600_Reg128:%vreg21 R600_Reg32:%vreg18
register: %vreg21 +[128r,176r:0)
144B%vreg23<def> = COPY %vreg19<kill>; R600_Reg128:%vreg23,%vreg19
register: %vreg23 +[144r,224r:0)
160B%vreg23:sel_y<def> = COPY %vreg15<kill>; R600_Reg128:%vreg23 R600_TReg32:%vreg15
register: %vreg23 replace range with [144r,160r:1) RESULT: [144r,160r:1)[160r,224r:0)  0 at 160r 1 at 144r
176B%vreg24<def> = COPY %vreg21<kill>; R600_Reg128:%vreg24,%vreg21
register: %vreg24 +[176r,256r:0)
192B%vreg24:sel_y<def> = COPY %vreg2; R600_Reg128:%vreg24 R600_Reg32:%vreg2
register: %vreg24 replace range with [176r,192r:1) RESULT: [176r,192r:1)[192r,256r:0)  0 at 192r 1 at 176r
208B%vreg25<def> = COPY %C1_Z; R600_Reg32:%vreg25
register: %vreg25 +[208r,272r:0)
224B%vreg26<def> = COPY %vreg23<kill>; R600_Reg128:%vreg26,%vreg23
register: %vreg26 +[224r,336r:0)
240B%vreg26:sel_z<def> = COPY %vreg16<kill>; R600_Reg128:%vreg26 R600_TReg32:%vreg16
register: %vreg26 replace range with [224r,240r:1) RESULT: [224r,240r:1)[240r,336r:0)  0 at 240r 1 at 224r
256B%vreg27<def> = COPY %vreg24<kill>; R600_Reg128:%vreg27,%vreg24
register: %vreg27 +[256r,304r:0)
272B%vreg27:sel_z<def> = COPY %vreg25<kill>; R600_Reg128:%vreg27 R600_Reg32:%vreg25
register: %vreg27 replace range with [256r,272r:1) RESULT: [256r,272r:1)[272r,304r:0)  0 at 272r 1 at 256r
288B%vreg28<def> = COPY %C1_W; R600_Reg32:%vreg28
register: %vreg28 +[288r,320r:0)
304B%vreg3<def> = COPY %vreg27<kill>; R600_Reg128:%vreg3,%vreg27
register: %vreg3 +[304r,416r:0)
320B%vreg3:sel_w<def> = COPY %vreg28<kill>; R600_Reg128:%vreg3 R600_Reg32:%vreg28
register: %vreg3 replace range with [304r,320r:1) RESULT: [304r,320r:1)[320r,416r:0)  0 at 320r 1 at 304r
336B%vreg1<def> = COPY %vreg26<kill>; R600_Reg128:%vreg1,%vreg26
register: %vreg1 +[336r,448B:0) +[448B,592B:0) +[880B,1168B:0) +[592B,832r:0)
352B%vreg1:sel_w<def> = COPY %vreg17<kill>; R600_Reg128:%vreg1 R600_TReg32:%vreg17
register: %vreg1 replace range with [336r,352r:1) RESULT: [336r,352r:1)[352r,832r:0)[880B,1168B:0)  0 at 352r 1 at 336r
368B%vreg13<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg13
register: %vreg13 +[368r,432r:0)
384B%vreg0<def> = COPY %C0_X; R600_Reg32:%vreg0
register: %vreg0 +[384r,448B:0) +[448B,592B:0) +[880B,1168B:0)
400B%vreg47<def> = COPY %vreg2<kill>; R600_Reg32:%vreg47,%vreg2
register: %vreg47 +[400r,448B:0) phi-join +[448B,464r:1)
416B%vreg48<def> = COPY %vreg3<kill>; R600_Reg128:%vreg48,%vreg3
register: %vreg48 +[416r,448B:0) phi-join +[448B,480r:1)
432B%vreg49<def> = COPY %vreg13<kill>; R600_Reg32:%vreg49,%vreg13
register: %vreg49 +[432r,448B:0) phi-join +[448B,496r:1)
BB#1:# derived from 
464B%vreg5<def> = COPY %vreg47<kill>; R600_Reg32:%vreg5,%vreg47
register: %vreg5 +[464r,592B:0) +[880B,992r:0)
480B%vreg6<def> = COPY %vreg48<kill>; R600_Reg128:%vreg6,%vreg48
register: %vreg6 +[480r,592B:0) +[592B,704r:0) +[880B,1056r:0)
496B%vreg7<def> = COPY %vreg49<kill>; R600_Reg32:%vreg7,%vreg49
register: %vreg7 +[496r,592B:0) +[880B,1088r:0)
512B%vreg29<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %vreg0, 0, 0, 0, %vreg7, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg29,%vreg0,%vreg7
register: %vreg29 +[512r,528r:0)
528B%vreg30<def> = COPY %vreg29<kill>; R600_Reg32:%vreg30,%vreg29
register: %vreg30 +[528r,544r:0)
544B%PREDICATE_BIT<def> = PRED_X %vreg30<kill>, 152, 16; R600_Reg32:%vreg30
560BJUMP <BB#3>, pred:%PREDICATE_BIT
576BJUMP <BB#2>, pred:%noreg
BB#2:# derived from 
608B%vreg39<def> = COPY %vreg6:sel_x; R600_Reg32:%vreg39 R600_Reg128:%vreg6
register: %vreg39 +[608r,624r:0)
624B%T2_X<def> = COPY %vreg39<kill>; R600_Reg32:%vreg39
640B%vreg40<def> = COPY %vreg6:sel_y; R600_Reg32:%vreg40 R600_Reg128:%vreg6
register: %vreg40 +[640r,656r:0)
656B%T2_Y<def> = COPY %vreg40<kill>; R600_Reg32:%vreg40
672B%vreg41<def> = COPY %vreg6:sel_z; R600_Reg32:%vreg41 R600_Reg128:%vreg6
register: %vreg41 +[672r,688r:0)
688B%T2_Z<def> = COPY %vreg41<kill>; R600_Reg32:%vreg41
704B%vreg42<def> = COPY %vreg6:sel_w<kill>; R600_Reg32:%vreg42 R600_Reg128:%vreg6
register: %vreg42 +[704r,720r:0)
720B%T2_W<def> = COPY %vreg42<kill>; R600_Reg32:%vreg42
736B%vreg43<def> = COPY %vreg1:sel_x; R600_Reg32:%vreg43 R600_Reg128:%vreg1
register: %vreg43 +[736r,752r:0)
752B%T1_X<def> = COPY %vreg43<kill>; R600_Reg32:%vreg43
768B%vreg44<def> = COPY %vreg1:sel_y; R600_Reg32:%vreg44 R600_Reg128:%vreg1
register: %vreg44 +[768r,784r:0)
784B%T1_Y<def> = COPY %vreg44<kill>; R600_Reg32:%vreg44
800B%vreg45<def> = COPY %vreg1:sel_z; R600_Reg32:%vreg45 R600_Reg128:%vreg1
register: %vreg45 +[800r,816r:0)
816B%T1_Z<def> = COPY %vreg45<kill>; R600_Reg32:%vreg45
832B%vreg46<def> = COPY %vreg1:sel_w<kill>; R600_Reg32:%vreg46 R600_Reg128:%vreg1
register: %vreg46 +[832r,848r:0)
848B%T1_W<def> = COPY %vreg46<kill>; R600_Reg32:%vreg46
864BRETURN %T1_W<imp-use,kill>, %T1_Z<imp-use,kill>, %T1_Y<imp-use,kill>, %T1_X<imp-use,kill>, %T2_W<imp-use,kill>, %T2_Z<imp-use,kill>, %T2_Y<imp-use,kill>, %T2_X<imp-use,kill>
BB#3:# derived from 
896B%vreg31<def> = COPY %vreg6:sel_x; R600_Reg32:%vreg31 R600_Reg128:%vreg6
register: %vreg31 +[896r,912r:0)
912B%vreg32:sel_x<def,read-undef> = COPY %vreg31<kill>; R600_Reg128:%vreg32 R600_Reg32:%vreg31
register: %vreg32 +[912r,944r:0)
928B%vreg34<def> = COPY %vreg6:sel_y; R600_Reg32:%vreg34 R600_Reg128:%vreg6
register: %vreg34 +[928r,960r:0)
944B%vreg35<def> = COPY %vreg32<kill>; R600_Reg128:%vreg35,%vreg32
register: %vreg35 +[944r,976r:0)
960B%vreg35:sel_y<def> = COPY %vreg34<kill>; R600_Reg128:%vreg35 R600_Reg32:%vreg34
register: %vreg35 replace range with [944r,960r:1) RESULT: [944r,960r:1)[960r,976r:0)  0 at 960r 1 at 944r
976B%vreg36<def> = COPY %vreg35<kill>; R600_Reg128:%vreg36,%vreg35
register: %vreg36 +[976r,1024r:0)
992B%vreg36:sel_z<def> = COPY %vreg5<kill>; R600_Reg128:%vreg36 R600_Reg32:%vreg5
register: %vreg36 replace range with [976r,992r:1) RESULT: [976r,992r:1)[992r,1024r:0)  0 at 992r 1 at 976r
1008B%vreg37<def> = COPY %vreg6:sel_w; R600_Reg32:%vreg37 R600_Reg128:%vreg6
register: %vreg37 +[1008r,1040r:0)
1024B%vreg10<def> = COPY %vreg36<kill>; R600_Reg128:%vreg10,%vreg36
register: %vreg10 +[1024r,1120r:0)
1040B%vreg10:sel_w<def> = COPY %vreg37<kill>; R600_Reg128:%vreg10 R600_Reg32:%vreg37
register: %vreg10 replace range with [1024r,1040r:1) RESULT: [1024r,1040r:1)[1040r,1120r:0)  0 at 1040r 1 at 1024r
1056B%vreg9<def> = COPY %vreg6:sel_z<kill>; R600_Reg32:%vreg9 R600_Reg128:%vreg6
register: %vreg9 +[1056r,1104r:0)
1072B%vreg38<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 1; R600_Reg32:%vreg38
register: %vreg38 +[1072r,1088r:0)
1088B%vreg11<def> = ADD_INT 0, 0, 1, 0, 0, 0, %vreg7<kill>, 0, 0, 0, %vreg38<kill>, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg11,%vreg7,%vreg38
register: %vreg11 +[1088r,1136r:0)
1104B%vreg47<def> = COPY %vreg9<kill>; R600_Reg32:%vreg47,%vreg9
register: %vreg47 phi-join +[1104r,1168B:2)
1120B%vreg48<def> = COPY %vreg10<kill>; R600_Reg128:%vreg48,%vreg10
register: %vreg48 phi-join +[1120r,1168B:2)
1136B%vreg49<def> = COPY %vreg11<kill>; R600_Reg32:%vreg49,%vreg11
register: %vreg49 phi-join +[1136r,1168B:2)
1152BJUMP <BB#1>, pred:%noreg
Computing live-in reg-units in ABI blocks.
0BBB#0 T1_X#0 T1_Y#0 T1_Z#0 T1_W#0
Created 4 new intervals.
********** INTERVALS **********
T1_W = [0B,16r:0)[848r,864r:1)  0 at 0B-phi 1 at 848r
T1_X = [0B,64r:0)[752r,864r:1)  0 at 0B-phi 1 at 752r
T1_Y = [0B,48r:0)[784r,864r:1)  0 at 0B-phi 1 at 784r
T1_Z = [0B,32r:0)[816r,864r:1)  0 at 0B-phi 1 at 816r
%vreg0 = [384r,592B:0)[880B,1168B:0)  0 at 384r
%vreg1 = [336r,352r:1)[352r,832r:0)[880B,1168B:0)  0 at 352r 1 at 336r
%vreg2 = [112r,400r:0)  0 at 112r
%vreg3 = [304r,320r:1)[320r,416r:0)  0 at 320r 1 at 304r
%vreg5 = [464r,592B:0)[880B,992r:0)  0 at 464r
%vreg6 = [480r,704r:0)[880B,1056r:0)  0 at 480r
%vreg7 = [496r,592B:0)[880B,1088r:0)  0 at 496r
%vreg9 = [1056r,1104r:0)  0 at 1056r
%vreg10 = [1024r,1040r:1)[1040r,1120r:0)  0 at 1040r 1 at 1024r
%vreg11 = [1088r,1136r:0)  0 at 1088r
%vreg13 = [368r,432r:0)  0 at 368r
%vreg14 = [64r,96r:0)  0 at 64r
%vreg15 = [48r,160r:0)  0 at 48r
%vreg16 = [32r,240r:0)  0 at 32r
%vreg17 = [16r,352r:0)  0 at 16r
%vreg18 = [80r,128r:0)  0 at 80r
%vreg19 = [96r,144r:0)  0 at 96r
%vreg21 = [128r,176r:0)  0 at 128r
%vreg23 = [144r,160r:1)[160r,224r:0)  0 at 160r 1 at 144r
%vreg24 = [176r,192r:1)[192r,256r:0)  0 at 192r 1 at 176r
%vreg25 = [208r,272r:0)  0 at 208r
%vreg26 = [224r,240r:1)[240r,336r:0)  0 at 240r 1 at 224r
%vreg27 = [256r,272r:1)[272r,304r:0)  0 at 272r 1 at 256r
%vreg28 = [288r,320r:0)  0 at 288r
%vreg29 = [512r,528r:0)  0 at 512r
%vreg30 = [528r,544r:0)  0 at 528r
%vreg31 = [896r,912r:0)  0 at 896r
%vreg32 = [912r,944r:0)  0 at 912r
%vreg34 = [928r,960r:0)  0 at 928r
%vreg35 = [944r,960r:1)[960r,976r:0)  0 at 960r 1 at 944r
%vreg36 = [976r,992r:1)[992r,1024r:0)  0 at 992r 1 at 976r
%vreg37 = [1008r,1040r:0)  0 at 1008r
%vreg38 = [1072r,1088r:0)  0 at 1072r
%vreg39 = [608r,624r:0)  0 at 608r
%vreg40 = [640r,656r:0)  0 at 640r
%vreg41 = [672r,688r:0)  0 at 672r
%vreg42 = [704r,720r:0)  0 at 704r
%vreg43 = [736r,752r:0)  0 at 736r
%vreg44 = [768r,784r:0)  0 at 768r
%vreg45 = [800r,816r:0)  0 at 800r
%vreg46 = [832r,848r:0)  0 at 832r
%vreg47 = [400r,448B:0)[448B,464r:1)[1104r,1168B:2)  0 at 400r 1 at 448B-phi 2 at 1104r
%vreg48 = [416r,448B:0)[448B,480r:1)[1120r,1168B:2)  0 at 416r 1 at 448B-phi 2 at 1120r
%vreg49 = [432r,448B:0)[448B,496r:1)[1136r,1168B:2)  0 at 432r 1 at 448B-phi 2 at 1136r
********** MACHINEINSTRS **********
# Machine code for function main: Post SSA
Function Live Ins: %T1_X in %vreg14, %T1_Y in %vreg15, %T1_Z in %vreg16, %T1_W in %vreg17
Function Live Outs: %T1_W %T1_Z %T1_Y %T1_X %T2_W %T2_Z %T2_Y %T2_X

0BBB#0: derived from LLVM BB %0
    Live Ins: %T1_X %T1_Y %T1_Z %T1_W
16B%vreg17<def> = COPY %T1_W; R600_TReg32:%vreg17
32B%vreg16<def> = COPY %T1_Z; R600_TReg32:%vreg16
48B%vreg15<def> = COPY %T1_Y; R600_TReg32:%vreg15
64B%vreg14<def> = COPY %T1_X; R600_TReg32:%vreg14
80B%vreg18<def> = COPY %C1_X; R600_Reg32:%vreg18
96B%vreg19:sel_x<def,read-undef> = COPY %vreg14<kill>; R600_Reg128:%vreg19 R600_TReg32:%vreg14
112B%vreg2<def> = COPY %C1_Y; R600_Reg32:%vreg2
128B%vreg21:sel_x<def,read-undef> = COPY %vreg18<kill>; R600_Reg128:%vreg21 R600_Reg32:%vreg18
144B%vreg23<def> = COPY %vreg19<kill>; R600_Reg128:%vreg23,%vreg19
160B%vreg23:sel_y<def> = COPY %vreg15<kill>; R600_Reg128:%vreg23 R600_TReg32:%vreg15
176B%vreg24<def> = COPY %vreg21<kill>; R600_Reg128:%vreg24,%vreg21
192B%vreg24:sel_y<def> = COPY %vreg2; R600_Reg128:%vreg24 R600_Reg32:%vreg2
208B%vreg25<def> = COPY %C1_Z; R600_Reg32:%vreg25
224B%vreg26<def> = COPY %vreg23<kill>; R600_Reg128:%vreg26,%vreg23
240B%vreg26:sel_z<def> = COPY %vreg16<kill>; R600_Reg128:%vreg26 R600_TReg32:%vreg16
256B%vreg27<def> = COPY %vreg24<kill>; R600_Reg128:%vreg27,%vreg24
272B%vreg27:sel_z<def> = COPY %vreg25<kill>; R600_Reg128:%vreg27 R600_Reg32:%vreg25
288B%vreg28<def> = COPY %C1_W; R600_Reg32:%vreg28
304B%vreg3<def> = COPY %vreg27<kill>; R600_Reg128:%vreg3,%vreg27
320B%vreg3:sel_w<def> = COPY %vreg28<kill>; R600_Reg128:%vreg3 R600_Reg32:%vreg28
336B%vreg1<def> = COPY %vreg26<kill>; R600_Reg128:%vreg1,%vreg26
352B%vreg1:sel_w<def> = COPY %vreg17<kill>; R600_Reg128:%vreg1 R600_TReg32:%vreg17
368B%vreg13<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg13
384B%vreg0<def> = COPY %C0_X; R600_Reg32:%vreg0
400B%vreg47<def> = COPY %vreg2<kill>; R600_Reg32:%vreg47,%vreg2
416B%vreg48<def> = COPY %vreg3<kill>; R600_Reg128:%vreg48,%vreg3
432B%vreg49<def> = COPY %vreg13<kill>; R600_Reg32:%vreg49,%vreg13
    Successors according to CFG: BB#1

448BBB#1: derived from LLVM BB %25
    Predecessors according to CFG: BB#0 BB#3
464B%vreg5<def> = COPY %vreg47<kill>; R600_Reg32:%vreg5,%vreg47
480B%vreg6<def> = COPY %vreg48<kill>; R600_Reg128:%vreg6,%vreg48
496B%vreg7<def> = COPY %vreg49<kill>; R600_Reg32:%vreg7,%vreg49
512B%vreg29<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %vreg0, 0, 0, 0, %vreg7, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg29,%vreg0,%vreg7
528B%vreg30<def> = COPY %vreg29<kill>; R600_Reg32:%vreg30,%vreg29
544B%PREDICATE_BIT<def> = PRED_X %vreg30<kill>, 152, 16; R600_Reg32:%vreg30
560BJUMP <BB#3>, pred:%PREDICATE_BIT
576BJUMP <BB#2>, pred:%noreg
    Successors according to CFG: BB#2(4) BB#3(124)

592BBB#2: derived from LLVM BB %31
    Predecessors according to CFG: BB#1
608B%vreg39<def> = COPY %vreg6:sel_x; R600_Reg32:%vreg39 R600_Reg128:%vreg6
624B%T2_X<def> = COPY %vreg39<kill>; R600_Reg32:%vreg39
640B%vreg40<def> = COPY %vreg6:sel_y; R600_Reg32:%vreg40 R600_Reg128:%vreg6
656B%T2_Y<def> = COPY %vreg40<kill>; R600_Reg32:%vreg40
672B%vreg41<def> = COPY %vreg6:sel_z; R600_Reg32:%vreg41 R600_Reg128:%vreg6
688B%T2_Z<def> = COPY %vreg41<kill>; R600_Reg32:%vreg41
704B%vreg42<def> = COPY %vreg6:sel_w<kill>; R600_Reg32:%vreg42 R600_Reg128:%vreg6
720B%T2_W<def> = COPY %vreg42<kill>; R600_Reg32:%vreg42
736B%vreg43<def> = COPY %vreg1:sel_x; R600_Reg32:%vreg43 R600_Reg128:%vreg1
752B%T1_X<def> = COPY %vreg43<kill>; R600_Reg32:%vreg43
768B%vreg44<def> = COPY %vreg1:sel_y; R600_Reg32:%vreg44 R600_Reg128:%vreg1
784B%T1_Y<def> = COPY %vreg44<kill>; R600_Reg32:%vreg44
800B%vreg45<def> = COPY %vreg1:sel_z; R600_Reg32:%vreg45 R600_Reg128:%vreg1
816B%T1_Z<def> = COPY %vreg45<kill>; R600_Reg32:%vreg45
832B%vreg46<def> = COPY %vreg1:sel_w<kill>; R600_Reg32:%vreg46 R600_Reg128:%vreg1
848B%T1_W<def> = COPY %vreg46<kill>; R600_Reg32:%vreg46
864BRETURN %T1_W<imp-use>, %T1_Z<imp-use>, %T1_Y<imp-use>, %T1_X<imp-use>, %T2_W<imp-use,kill>, %T2_Z<imp-use,kill>, %T2_Y<imp-use,kill>, %T2_X<imp-use,kill>

880BBB#3: derived from LLVM BB %41
    Predecessors according to CFG: BB#1
896B%vreg31<def> = COPY %vreg6:sel_x; R600_Reg32:%vreg31 R600_Reg128:%vreg6
912B%vreg32:sel_x<def,read-undef> = COPY %vreg31<kill>; R600_Reg128:%vreg32 R600_Reg32:%vreg31
928B%vreg34<def> = COPY %vreg6:sel_y; R600_Reg32:%vreg34 R600_Reg128:%vreg6
944B%vreg35<def> = COPY %vreg32<kill>; R600_Reg128:%vreg35,%vreg32
960B%vreg35:sel_y<def> = COPY %vreg34<kill>; R600_Reg128:%vreg35 R600_Reg32:%vreg34
976B%vreg36<def> = COPY %vreg35<kill>; R600_Reg128:%vreg36,%vreg35
992B%vreg36:sel_z<def> = COPY %vreg5<kill>; R600_Reg128:%vreg36 R600_Reg32:%vreg5
1008B%vreg37<def> = COPY %vreg6:sel_w; R600_Reg32:%vreg37 R600_Reg128:%vreg6
1024B%vreg10<def> = COPY %vreg36<kill>; R600_Reg128:%vreg10,%vreg36
1040B%vreg10:sel_w<def> = COPY %vreg37<kill>; R600_Reg128:%vreg10 R600_Reg32:%vreg37
1056B%vreg9<def> = COPY %vreg6:sel_z<kill>; R600_Reg32:%vreg9 R600_Reg128:%vreg6
1072B%vreg38<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 1; R600_Reg32:%vreg38
1088B%vreg11<def> = ADD_INT 0, 0, 1, 0, 0, 0, %vreg7<kill>, 0, 0, 0, %vreg38<kill>, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg11,%vreg7,%vreg38
1104B%vreg47<def> = COPY %vreg9<kill>; R600_Reg32:%vreg47,%vreg9
1120B%vreg48<def> = COPY %vreg10<kill>; R600_Reg128:%vreg48,%vreg10
1136B%vreg49<def> = COPY %vreg11<kill>; R600_Reg32:%vreg49,%vreg11
1152BJUMP <BB#1>, pred:%noreg
    Successors according to CFG: BB#1

# End machine code for function main.

********** SIMPLE REGISTER COALESCING **********
********** Function: main
********** JOINING INTERVALS ***********
:
464B%vreg5<def> = COPY %vreg47<kill>; R600_Reg32:%vreg5,%vreg47
Considering merging to R600_Reg32 with %vreg47 in %vreg5
RHS = %vreg5 [464r,592B:0)[880B,992r:0)  0 at 464r
LHS = %vreg47 [400r,448B:0)[448B,464r:1)[1104r,1168B:2)  0 at 400r 1 at 448B-phi 2 at 1104r
merge %vreg5:0 at 464r into %vreg47:1 at 448B --> @448B
erased:464r%vreg5<def> = COPY %vreg47<kill>; R600_Reg32:%vreg5,%vreg47
AllocationOrder(R600_Reg32) = [ %T0_X %T0_Y %T0_Z %T0_W %T1_X %T1_Y %T1_Z %T1_W %T2_X %T2_Y %T2_Z %T2_W %T3_X %T3_Y %T3_Z %T3_W %T4_X %T4_Y %T4_Z %T4_W %T5_X %T5_Y %T5_Z %T5_W %T6_X %T6_Y %T6_Z %T6_W %T7_X %T7_Y %T7_Z %T7_W %T8_X %T8_Y %T8_Z %T8_W %T9_X %T9_Y %T9_Z %T9_W %T10_X %T10_Y %T10_Z %T10_W %T11_X %T11_Y %T11_Z %T11_W %T12_X %T12_Y %T12_Z %T12_W %T13_X %T13_Y %T13_Z %T13_W %T14_X %T14_Y %T14_Z %T14_W %T15_X %T15_Y %T15_Z %T15_W %T16_X %T16_Y %T16_Z %T16_W %T17_X %T17_Y %T17_Z %T17_W %T18_X %T18_Y %T18_Z %T18_W %T19_X %T19_Y %T19_Z %T19_W %T20_X %T20_Y %T20_Z %T20_W %T21_X %T21_Y %T21_Z %T21_W %T22_X %T22_Y %T22_Z %T22_W %T23_X %T23_Y %T23_Z %T23_W %T24_X %T24_Y %T24_Z %T24_W %T25_X %T25_Y %T25_Z %T25_W %T26_X %T26_Y %T26_Z %T26_W %T27_X %T27_Y %T27_Z %T27_W %T28_X %T28_Y %T28_Z %T28_W %T29_X %T29_Y %T29_Z %T29_W %T30_X %T30_Y %T30_Z %T30_W %T31_X %T31_Y %T31_Z %T31_W %T32_X %T32_Y %T32_Z %T32_W %T33_X %T33_Y %T33_Z %T33_W %T34_X %T34_Y %T34_Z
 %T34_W %T35_X %T35_Y %T35_Z %T35_W %T36_X %T36_Y %T36_Z %T36_W %T37_X %T37_Y %T37_Z %T37_W %T38_X %T38_Y %T38_Z %T38_W %T39_X %T39_Y %T39_Z %T39_W %T40_X %T40_Y %T40_Z %T40_W %T41_X %T41_Y %T41_Z %T41_W %T42_X %T42_Y %T42_Z %T42_W %T43_X %T43_Y %T43_Z %T43_W %T44_X %T44_Y %T44_Z %T44_W %T45_X %T45_Y %T45_Z %T45_W %T46_X %T46_Y %T46_Z %T46_W %T47_X %T47_Y %T47_Z %T47_W %T48_X %T48_Y %T48_Z %T48_W %T49_X %T49_Y %T49_Z %T49_W %T50_X %T50_Y %T50_Z %T50_W %T51_X %T51_Y %T51_Z %T51_W %T52_X %T52_Y %T52_Z %T52_W %T53_X %T53_Y %T53_Z %T53_W %T54_X %T54_Y %T54_Z %T54_W %T55_X %T55_Y %T55_Z %T55_W %T56_X %T56_Y %T56_Z %T56_W %T57_X %T57_Y %T57_Z %T57_W %T58_X %T58_Y %T58_Z %T58_W %T59_X %T59_Y %T59_Z %T59_W %T60_X %T60_Y %T60_Z %T60_W %T61_X %T61_Y %T61_Z %T61_W %T62_X %T62_Y %T62_Z %T62_W %T63_X %T63_Y %T63_Z %T63_W %T64_X %T64_Y %T64_Z %T64_W %T65_X %T65_Y %T65_Z %T65_W %T66_X %T66_Y %T66_Z %T66_W %T67_X %T67_Y %T67_Z %T67_W %T68_X %T68_Y %T68_Z %T68_W %T69_X
 %T69_Y %T69_Z %T69_W %T70_X %T70_Y %T70_Z %T70_W %T71_X %T71_Y %T71_Z %T71_W %T72_X %T72_Y %T72_Z %T72_W %T73_X %T73_Y %T73_Z %T73_W %T74_X %T74_Y %T74_Z %T74_W %T75_X %T75_Y %T75_Z %T75_W %T76_X %T76_Y %T76_Z %T76_W %T77_X %T77_Y %T77_Z %T77_W %T78_X %T78_Y %T78_Z %T78_W %T79_X %T79_Y %T79_Z %T79_W %T80_X %T80_Y %T80_Z %T80_W %T81_X %T81_Y %T81_Z %T81_W %T82_X %T82_Y %T82_Z %T82_W %T83_X %T83_Y %T83_Z %T83_W %T84_X %T84_Y %T84_Z %T84_W %T85_X %T85_Y %T85_Z %T85_W %T86_X %T86_Y %T86_Z %T86_W %T87_X %T87_Y %T87_Z %T87_W %T88_X %T88_Y %T88_Z %T88_W %T89_X %T89_Y %T89_Z %T89_W %T90_X %T90_Y %T90_Z %T90_W %T91_X %T91_Y %T91_Z %T91_W %T92_X %T92_Y %T92_Z %T92_W %T93_X %T93_Y %T93_Z %T93_W %T94_X %T94_Y %T94_Z %T94_W %T95_X %T95_Y %T95_Z %T95_W %T96_X %T96_Y %T96_Z %T96_W %T97_X %T97_Y %T97_Z %T97_W %T98_X %T98_Y %T98_Z %T98_W %T99_X %T99_Y %T99_Z %T99_W %T100_X %T100_Y %T100_Z %T100_W %T101_X %T101_Y %T101_Z %T101_W %T102_X %T102_Y %T102_Z %T102_W %T103_X
 %T103_Y %T103_Z %T103_W %T104_X %T104_Y %T104_Z %T104_W %T105_X %T105_Y %T105_Z %T105_W %T106_X %T106_Y %T106_Z %T106_W %T107_X %T107_Y %T107_Z %T107_W %T108_X %T108_Y %T108_Z %T108_W %T109_X %T109_Y %T109_Z %T109_W %T110_X %T110_Y %T110_Z %T110_W %T111_X %T111_Y %T111_Z %T111_W %T112_X %T112_Y %T112_Z %T112_W %T113_X %T113_Y %T113_Z %T113_W %T114_X %T114_Y %T114_Z %T114_W %T115_X %T115_Y %T115_Z %T115_W %T116_X %T116_Y %T116_Z %T116_W %T117_X %T117_Y %T117_Z %T117_W %T118_X %T118_Y %T118_Z %T118_W %T119_X %T119_Y %T119_Z %T119_W %T120_X %T120_Y %T120_Z %T120_W %T121_X %T121_Y %T121_Z %T121_W %T122_X %T122_Y %T122_Z %T122_W %T123_X %T123_Y %T123_Z %T123_W %T124_X %T124_Y %T124_Z %T124_W %T125_X %T125_Y %T125_Z %T125_W %T126_X %T126_Y %T126_Z %T126_W %T127_X %T127_Y %T127_Z %T127_W %ArrayBase448 %ArrayBase449 %ArrayBase450 %ArrayBase451 %ArrayBase452 %ArrayBase453 %ArrayBase454 %ArrayBase455 %ArrayBase456 %ArrayBase457 %ArrayBase458 %ArrayBase459
 %ArrayBase460 %ArrayBase461 %ArrayBase462 %ArrayBase463 %ArrayBase464 ]
updated: 992B%vreg36:sel_z<def> = COPY %vreg47; R600_Reg128:%vreg36 R600_Reg32:%vreg47
Joined. Result = %vreg47[400r,448B:0)[448B,592B:1)[880B,992r:1)[1104r,1168B:2)  0 at 400r 1 at 448B-phi 2 at 1104r
480B%vreg6<def> = COPY %vreg48<kill>; R600_Reg128:%vreg6,%vreg48
Considering merging to R600_Reg128 with %vreg48 in %vreg6
RHS = %vreg6 [480r,704r:0)[880B,1056r:0)  0 at 480r
LHS = %vreg48 [416r,448B:0)[448B,480r:1)[1120r,1168B:2)  0 at 416r 1 at 448B-phi 2 at 1120r
merge %vreg6:0 at 480r into %vreg48:1 at 448B --> @448B
erased:480r%vreg6<def> = COPY %vreg48<kill>; R600_Reg128:%vreg6,%vreg48
AllocationOrder(R600_Reg128) = [ %T0_XYZW %T1_XYZW %T2_XYZW %T3_XYZW %T4_XYZW %T5_XYZW %T6_XYZW %T7_XYZW %T8_XYZW %T9_XYZW %T10_XYZW %T11_XYZW %T12_XYZW %T13_XYZW %T14_XYZW %T15_XYZW %T16_XYZW %T17_XYZW %T18_XYZW %T19_XYZW %T20_XYZW %T21_XYZW %T22_XYZW %T23_XYZW %T24_XYZW %T25_XYZW %T26_XYZW %T27_XYZW %T28_XYZW %T29_XYZW %T30_XYZW %T31_XYZW %T32_XYZW %T33_XYZW %T34_XYZW %T35_XYZW %T36_XYZW %T37_XYZW %T38_XYZW %T39_XYZW %T40_XYZW %T41_XYZW %T42_XYZW %T43_XYZW %T44_XYZW %T45_XYZW %T46_XYZW %T47_XYZW %T48_XYZW %T49_XYZW %T50_XYZW %T51_XYZW %T52_XYZW %T53_XYZW %T54_XYZW %T55_XYZW %T56_XYZW %T57_XYZW %T58_XYZW %T59_XYZW %T60_XYZW %T61_XYZW %T62_XYZW %T63_XYZW %T64_XYZW %T65_XYZW %T66_XYZW %T67_XYZW %T68_XYZW %T69_XYZW %T70_XYZW %T71_XYZW %T72_XYZW %T73_XYZW %T74_XYZW %T75_XYZW %T76_XYZW %T77_XYZW %T78_XYZW %T79_XYZW %T80_XYZW %T81_XYZW %T82_XYZW %T83_XYZW %T84_XYZW %T85_XYZW %T86_XYZW %T87_XYZW %T88_XYZW %T89_XYZW %T90_XYZW %T91_XYZW %T92_XYZW %T93_XYZW
 %T94_XYZW %T95_XYZW %T96_XYZW %T97_XYZW %T98_XYZW %T99_XYZW %T100_XYZW %T101_XYZW %T102_XYZW %T103_XYZW %T104_XYZW %T105_XYZW %T106_XYZW %T107_XYZW %T108_XYZW %T109_XYZW %T110_XYZW %T111_XYZW %T112_XYZW %T113_XYZW %T114_XYZW %T115_XYZW %T116_XYZW %T117_XYZW %T118_XYZW %T119_XYZW %T120_XYZW %T121_XYZW %T122_XYZW %T123_XYZW %T124_XYZW %T125_XYZW %T126_XYZW %T127_XYZW ]
updated: 896B%vreg31<def> = COPY %vreg48:sel_x; R600_Reg32:%vreg31 R600_Reg128:%vreg48
updated: 928B%vreg34<def> = COPY %vreg48:sel_y; R600_Reg32:%vreg34 R600_Reg128:%vreg48
updated: 1008B%vreg37<def> = COPY %vreg48:sel_w; R600_Reg32:%vreg37 R600_Reg128:%vreg48
updated: 1056B%vreg9<def> = COPY %vreg48:sel_z; R600_Reg32:%vreg9 R600_Reg128:%vreg48
updated: 608B%vreg39<def> = COPY %vreg48:sel_x; R600_Reg32:%vreg39 R600_Reg128:%vreg48
updated: 640B%vreg40<def> = COPY %vreg48:sel_y; R600_Reg32:%vreg40 R600_Reg128:%vreg48
updated: 672B%vreg41<def> = COPY %vreg48:sel_z; R600_Reg32:%vreg41 R600_Reg128:%vreg48
updated: 704B%vreg42<def> = COPY %vreg48:sel_w; R600_Reg32:%vreg42 R600_Reg128:%vreg48
Joined. Result = %vreg48[416r,448B:0)[448B,704r:1)[880B,1056r:1)[1120r,1168B:2)  0 at 416r 1 at 448B-phi 2 at 1120r
496B%vreg7<def> = COPY %vreg49<kill>; R600_Reg32:%vreg7,%vreg49
Considering merging to R600_Reg32 with %vreg49 in %vreg7
RHS = %vreg7 [496r,592B:0)[880B,1088r:0)  0 at 496r
LHS = %vreg49 [432r,448B:0)[448B,496r:1)[1136r,1168B:2)  0 at 432r 1 at 448B-phi 2 at 1136r
merge %vreg7:0 at 496r into %vreg49:1 at 448B --> @448B
erased:496r%vreg7<def> = COPY %vreg49<kill>; R600_Reg32:%vreg7,%vreg49
updated: 512B%vreg29<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %vreg0, 0, 0, 0, %vreg49, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg29,%vreg0,%vreg49
updated: 1088B%vreg11<def> = ADD_INT 0, 0, 1, 0, 0, 0, %vreg49, 0, 0, 0, %vreg38<kill>, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg11,%vreg49,%vreg38
Joined. Result = %vreg49[432r,448B:0)[448B,592B:1)[880B,1088r:1)[1136r,1168B:2)  0 at 432r 1 at 448B-phi 2 at 1136r
528B%vreg30<def> = COPY %vreg29<kill>; R600_Reg32:%vreg30,%vreg29
Considering merging to R600_Reg32 with %vreg29 in %vreg30
RHS = %vreg29 [512r,528r:0)  0 at 512r
LHS = %vreg30 [528r,544r:0)  0 at 528r
merge %vreg30:0 at 528r into %vreg29:0 at 512r --> @512r
erased:528r%vreg30<def> = COPY %vreg29<kill>; R600_Reg32:%vreg30,%vreg29
updated: 512B%vreg30<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %vreg0, 0, 0, 0, %vreg49, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg30,%vreg0,%vreg49
Joined. Result = %vreg30[512r,544r:0)  0 at 512r
:
896B%vreg31<def> = COPY %vreg48:sel_x; R600_Reg32:%vreg31 R600_Reg128:%vreg48
Considering merging to R600_Reg128 with %vreg31 in %vreg48:sel_x
RHS = %vreg31 [896r,912r:0)  0 at 896r
LHS = %vreg48 [416r,448B:0)[448B,704r:1)[880B,1056r:1)[1120r,1168B:2)  0 at 416r 1 at 448B-phi 2 at 1120r
merge %vreg31:0 at 896r into %vreg48:1 at 448B --> @448B
erased:896r%vreg31<def> = COPY %vreg48:sel_x; R600_Reg32:%vreg31 R600_Reg128:%vreg48
updated: 912B%vreg32:sel_x<def,read-undef> = COPY %vreg48:sel_x; R600_Reg128:%vreg32,%vreg48
Joined. Result = %vreg48[416r,448B:0)[448B,704r:1)[880B,1056r:1)[1120r,1168B:2)  0 at 416r 1 at 448B-phi 2 at 1120r
912B%vreg32:sel_x<def,read-undef> = COPY %vreg48:sel_x; R600_Reg128:%vreg32,%vreg48
Considering merging to R600_Reg128 with %vreg48 in %vreg32
RHS = %vreg48 [416r,448B:0)[448B,704r:1)[880B,1056r:1)[1120r,1168B:2)  0 at 416r 1 at 448B-phi 2 at 1120r
LHS = %vreg32 [912r,944r:0)  0 at 912r
merge %vreg32:0 at 912r into %vreg48:1 at 448B --> @448B
erased:912r%vreg32:sel_x<def,read-undef> = COPY %vreg48:sel_x; R600_Reg128:%vreg32,%vreg48
updated: 416B%vreg32<def> = COPY %vreg3<kill>; R600_Reg128:%vreg32,%vreg3
updated: 1120B%vreg32<def> = COPY %vreg10<kill>; R600_Reg128:%vreg32,%vreg10
updated: 928B%vreg34<def> = COPY %vreg32:sel_y; R600_Reg32:%vreg34 R600_Reg128:%vreg32
updated: 1008B%vreg37<def> = COPY %vreg32:sel_w; R600_Reg32:%vreg37 R600_Reg128:%vreg32
updated: 1056B%vreg9<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg9 R600_Reg128:%vreg32
updated: 608B%vreg39<def> = COPY %vreg32:sel_x; R600_Reg32:%vreg39 R600_Reg128:%vreg32
updated: 640B%vreg40<def> = COPY %vreg32:sel_y; R600_Reg32:%vreg40 R600_Reg128:%vreg32
updated: 672B%vreg41<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg41 R600_Reg128:%vreg32
updated: 704B%vreg42<def> = COPY %vreg32:sel_w; R600_Reg32:%vreg42 R600_Reg128:%vreg32
Joined. Result = %vreg32[416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
928B%vreg34<def> = COPY %vreg32:sel_y; R600_Reg32:%vreg34 R600_Reg128:%vreg32
Considering merging to R600_Reg128 with %vreg34 in %vreg32:sel_y
RHS = %vreg34 [928r,960r:0)  0 at 928r
LHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
merge %vreg34:0 at 928r into %vreg32:0 at 448B --> @448B
erased:928r%vreg34<def> = COPY %vreg32:sel_y; R600_Reg32:%vreg34 R600_Reg128:%vreg32
updated: 960B%vreg35:sel_y<def> = COPY %vreg32:sel_y; R600_Reg128:%vreg35,%vreg32
Joined. Result = %vreg32[416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
944B%vreg35<def> = COPY %vreg32; R600_Reg128:%vreg35,%vreg32
Considering merging to R600_Reg128 with %vreg32 in %vreg35
RHS = %vreg35 [944r,960r:1)[960r,976r:0)  0 at 960r 1 at 944r
LHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
merge %vreg35:1 at 944r into %vreg32:0 at 448B --> @448B
merge %vreg35:0 at 960r into %vreg32:0 at 448B --> @448B
erased:960r%vreg35:sel_y<def> = COPY %vreg32:sel_y; R600_Reg128:%vreg35,%vreg32
erased:944r%vreg35<def> = COPY %vreg32; R600_Reg128:%vreg35,%vreg32
updated: 976B%vreg36<def> = COPY %vreg32; R600_Reg128:%vreg36,%vreg32
Joined. Result = %vreg32[416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
976B%vreg36<def> = COPY %vreg32; R600_Reg128:%vreg36,%vreg32
Considering merging to R600_Reg128 with %vreg32 in %vreg36
RHS = %vreg36 [976r,992r:1)[992r,1024r:0)  0 at 992r 1 at 976r
LHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
merge %vreg36:1 at 976r into %vreg32:0 at 448B --> @448B
conflict at %vreg36:0 at 992r
taints local %vreg32:0 at 880B to 1056r
tainted lanes used by: %vreg9<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg9 R600_Reg128:%vreg32
Interference!
992B%vreg36:sel_z<def> = COPY %vreg47; R600_Reg128:%vreg36 R600_Reg32:%vreg47
Considering merging to R600_Reg128 with %vreg47 in %vreg36:sel_z
RHS = %vreg47 [400r,448B:0)[448B,592B:1)[880B,992r:1)[1104r,1168B:2)  0 at 400r 1 at 448B-phi 2 at 1104r
LHS = %vreg36 [976r,992r:1)[992r,1024r:0)  0 at 992r 1 at 976r
merge %vreg36:0 at 992r into %vreg47:1 at 448B --> @448B
interference at %vreg36:1 at 976r
Interference!
1008B%vreg37<def> = COPY %vreg32:sel_w; R600_Reg32:%vreg37 R600_Reg128:%vreg32
Considering merging to R600_Reg128 with %vreg37 in %vreg32:sel_w
RHS = %vreg37 [1008r,1040r:0)  0 at 1008r
LHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
merge %vreg37:0 at 1008r into %vreg32:0 at 448B --> @448B
erased:1008r%vreg37<def> = COPY %vreg32:sel_w; R600_Reg32:%vreg37 R600_Reg128:%vreg32
updated: 1040B%vreg10:sel_w<def> = COPY %vreg32:sel_w; R600_Reg128:%vreg10,%vreg32
Joined. Result = %vreg32[416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
1024B%vreg10<def> = COPY %vreg36<kill>; R600_Reg128:%vreg10,%vreg36
Considering merging to R600_Reg128 with %vreg36 in %vreg10
RHS = %vreg36 [976r,992r:1)[992r,1024r:0)  0 at 992r 1 at 976r
LHS = %vreg10 [1024r,1040r:1)[1040r,1120r:0)  0 at 1040r 1 at 1024r
merge %vreg10:1 at 1024r into %vreg36:0 at 992r --> @992r
erased:1024r%vreg10<def> = COPY %vreg36<kill>; R600_Reg128:%vreg10,%vreg36
updated: 976B%vreg10<def> = COPY %vreg32; R600_Reg128:%vreg10,%vreg32
updated: 992B%vreg10:sel_z<def> = COPY %vreg47; R600_Reg128:%vreg10 R600_Reg32:%vreg47
Joined. Result = %vreg10[976r,992r:0)[992r,1040r:1)[1040r,1120r:2)  0 at 976r 1 at 992r 2 at 1040r
1040B%vreg10:sel_w<def> = COPY %vreg32:sel_w; R600_Reg128:%vreg10,%vreg32
Considering merging to R600_Reg128 with %vreg32 in %vreg10
RHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
LHS = %vreg10 [976r,992r:0)[992r,1040r:1)[1040r,1120r:2)  0 at 976r 1 at 992r 2 at 1040r
merge %vreg10:0 at 976r into %vreg32:0 at 448B --> @448B
merge %vreg10:2 at 1040r into %vreg32:0 at 448B --> @448B
merge %vreg32:2 at 1120r into %vreg10:2 at 1040r --> @448B
conflict at %vreg10:1 at 992r
taints local %vreg32:0 at 880B to 1056r
tainted lanes used by: %vreg9<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg9 R600_Reg128:%vreg32
Interference!
1056B%vreg9<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg9 R600_Reg128:%vreg32
Considering merging to R600_Reg128 with %vreg9 in %vreg32:sel_z
RHS = %vreg9 [1056r,1104r:0)  0 at 1056r
LHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1056r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
merge %vreg9:0 at 1056r into %vreg32:0 at 448B --> @448B
erased:1056r%vreg9<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg9 R600_Reg128:%vreg32
updated: 1104B%vreg47<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg47 R600_Reg128:%vreg32
Joined. Result = %vreg32[416r,448B:1)[448B,704r:0)[880B,1104r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
1104B%vreg47<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg47 R600_Reg128:%vreg32
Considering merging to R600_Reg128 with %vreg47 in %vreg32:sel_z
RHS = %vreg47 [400r,448B:0)[448B,592B:1)[880B,992r:1)[1104r,1168B:2)  0 at 400r 1 at 448B-phi 2 at 1104r
LHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1104r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
interference at %vreg32:1 at 416r
Interference!
1120B%vreg32<def> = COPY %vreg10; R600_Reg128:%vreg32,%vreg10
Considering merging to R600_Reg128 with %vreg10 in %vreg32
RHS = %vreg10 [976r,992r:0)[992r,1040r:1)[1040r,1120r:2)  0 at 976r 1 at 992r 2 at 1040r
LHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1104r:0)[1120r,1168B:2)  0 at 448B-phi 1 at 416r 2 at 1120r
merge %vreg10:0 at 976r into %vreg32:0 at 448B --> @448B
merge %vreg10:2 at 1040r into %vreg32:0 at 448B --> @448B
merge %vreg32:2 at 1120r into %vreg10:2 at 1040r --> @448B
conflict at %vreg10:1 at 992r
taints local %vreg32:0 at 880B to 1104r
tainted lanes used by: %vreg47<def> = COPY %vreg32:sel_z; R600_Reg32:%vreg47 R600_Reg128:%vreg32
Extending: %vreg32   result = [416r,448B:1)[448B,704r:0)[880B,1168B:0)  0 at 448B-phi 1 at 416r
Shrink: [976r,992r:0)[992r,1040r:1)[1040r,1120r:2)  0 at 976r 1 at 992r 2 at 1040r
Shrunk: [976r,992r:0)[992r,1040r:1)[1040r,1040d:2)  0 at 976r 1 at 992r 2 at 1040r
Trivial!
1136B%vreg49<def> = COPY %vreg11<kill>; R600_Reg32:%vreg49,%vreg11
Considering merging to R600_Reg32 with %vreg11 in %vreg49
RHS = %vreg11 [1088r,1136r:0)  0 at 1088r
LHS = %vreg49 [432r,448B:0)[448B,592B:1)[880B,1088r:1)[1136r,1168B:2)  0 at 432r 1 at 448B-phi 2 at 1136r
merge %vreg49:2 at 1136r into %vreg11:0 at 1088r --> @1088r
erased:1136r%vreg49<def> = COPY %vreg11<kill>; R600_Reg32:%vreg49,%vreg11
updated: 1088B%vreg49<def> = ADD_INT 0, 0, 1, 0, 0, 0, %vreg49, 0, 0, 0, %vreg38<kill>, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg49,%vreg38
Joined. Result = %vreg49[432r,448B:0)[448B,592B:1)[880B,1088r:1)[1088r,1168B:2)  0 at 432r 1 at 448B-phi 2 at 1088r
:
16B%vreg17<def> = COPY %T1_W; R600_TReg32:%vreg17
Considering merging %vreg17 with %T1_W
Can only merge into reserved registers.
32B%vreg16<def> = COPY %T1_Z; R600_TReg32:%vreg16
Considering merging %vreg16 with %T1_Z
Can only merge into reserved registers.
48B%vreg15<def> = COPY %T1_Y; R600_TReg32:%vreg15
Considering merging %vreg15 with %T1_Y
Can only merge into reserved registers.
64B%vreg14<def> = COPY %T1_X; R600_TReg32:%vreg14
Considering merging %vreg14 with %T1_X
Can only merge into reserved registers.
80B%vreg18<def> = COPY %C1_X; R600_Reg32:%vreg18
Considering merging %vreg18 with %C1_X
RHS = %vreg18 [80r,128r:0)  0 at 80r
updated: 128B%vreg21:sel_x<def,read-undef> = COPY %C1_X; R600_Reg128:%vreg21
Joined. Result = %C1_X
96B%vreg19:sel_x<def,read-undef> = COPY %vreg14<kill>; R600_Reg128:%vreg19 R600_TReg32:%vreg14
Considering merging to R600_Reg128 with %vreg14 in %vreg19:sel_x
RHS = %vreg14 [64r,96r:0)  0 at 64r
LHS = %vreg19 [96r,144r:0)  0 at 96r
merge %vreg19:0 at 96r into %vreg14:0 at 64r --> @64r
erased:96r%vreg19:sel_x<def,read-undef> = COPY %vreg14<kill>; R600_Reg128:%vreg19 R600_TReg32:%vreg14
updated: 64B%vreg19:sel_x<def,read-undef> = COPY %T1_X; R600_Reg128:%vreg19
Joined. Result = %vreg19[64r,144r:0)  0 at 64r
112B%vreg2<def> = COPY %C1_Y; R600_Reg32:%vreg2
Considering merging %vreg2 with %C1_Y
RHS = %vreg2 [112r,400r:0)  0 at 112r
updated: 400B%vreg47<def> = COPY %C1_Y; R600_Reg32:%vreg47
updated: 192B%vreg24:sel_y<def> = COPY %C1_Y; R600_Reg128:%vreg24
Joined. Result = %C1_Y
128B%vreg21:sel_x<def,read-undef> = COPY %C1_X; R600_Reg128:%vreg21
Not coalescable.
144B%vreg23<def> = COPY %vreg19; R600_Reg128:%vreg23,%vreg19
Considering merging to R600_Reg128 with %vreg19 in %vreg23
RHS = %vreg19 [64r,144r:0)  0 at 64r
LHS = %vreg23 [144r,160r:1)[160r,224r:0)  0 at 160r 1 at 144r
merge %vreg23:1 at 144r into %vreg19:0 at 64r --> @64r
erased:144r%vreg23<def> = COPY %vreg19; R600_Reg128:%vreg23,%vreg19
updated: 64B%vreg23:sel_x<def,read-undef> = COPY %T1_X; R600_Reg128:%vreg23
Joined. Result = %vreg23[64r,160r:0)[160r,224r:1)  0 at 64r 1 at 160r
160B%vreg23:sel_y<def> = COPY %vreg15<kill>; R600_Reg128:%vreg23 R600_TReg32:%vreg15
Considering merging to R600_Reg128 with %vreg15 in %vreg23:sel_y
RHS = %vreg15 [48r,160r:0)  0 at 48r
LHS = %vreg23 [64r,160r:0)[160r,224r:1)  0 at 64r 1 at 160r
merge %vreg23:1 at 160r into %vreg15:0 at 48r --> @48r
pruned %vreg15 at 64r: [48r,64r:0)  0 at 48r
pruned all of %vreg23 at 160r: [64r,160r:0)  0 at 64r 1 at 160r
erased:160r%vreg23:sel_y<def> = COPY %vreg15<kill>; R600_Reg128:%vreg23 R600_TReg32:%vreg15
restoring liveness to 3 points: [48r,64r:0)[64r,160r:1)  0 at 48r 1 at 64r
updated: 48B%vreg23:sel_y<def,read-undef> = COPY %T1_Y; R600_Reg128:%vreg23
Joined. Result = %vreg23[48r,64r:0)[64r,224r:1)  0 at 48r 1 at 64r
176B%vreg24<def> = COPY %vreg21<kill>; R600_Reg128:%vreg24,%vreg21
Considering merging to R600_Reg128 with %vreg21 in %vreg24
RHS = %vreg21 [128r,176r:0)  0 at 128r
LHS = %vreg24 [176r,192r:1)[192r,256r:0)  0 at 192r 1 at 176r
merge %vreg24:1 at 176r into %vreg21:0 at 128r --> @128r
erased:176r%vreg24<def> = COPY %vreg21<kill>; R600_Reg128:%vreg24,%vreg21
updated: 128B%vreg24:sel_x<def,read-undef> = COPY %C1_X; R600_Reg128:%vreg24
Joined. Result = %vreg24[128r,192r:0)[192r,256r:1)  0 at 128r 1 at 192r
192B%vreg24:sel_y<def> = COPY %C1_Y; R600_Reg128:%vreg24
Not coalescable.
208B%vreg25<def> = COPY %C1_Z; R600_Reg32:%vreg25
Considering merging %vreg25 with %C1_Z
RHS = %vreg25 [208r,272r:0)  0 at 208r
updated: 272B%vreg27:sel_z<def> = COPY %C1_Z; R600_Reg128:%vreg27
Joined. Result = %C1_Z
224B%vreg26<def> = COPY %vreg23; R600_Reg128:%vreg26,%vreg23
Considering merging to R600_Reg128 with %vreg23 in %vreg26
RHS = %vreg23 [48r,64r:0)[64r,224r:1)  0 at 48r 1 at 64r
LHS = %vreg26 [224r,240r:1)[240r,336r:0)  0 at 240r 1 at 224r
merge %vreg26:1 at 224r into %vreg23:1 at 64r --> @64r
erased:224r%vreg26<def> = COPY %vreg23; R600_Reg128:%vreg26,%vreg23
updated: 48B%vreg26:sel_y<def,read-undef> = COPY %T1_Y; R600_Reg128:%vreg26
updated: 64B%vreg26:sel_x<def> = COPY %T1_X; R600_Reg128:%vreg26
Joined. Result = %vreg26[48r,64r:0)[64r,240r:1)[240r,336r:2)  0 at 48r 1 at 64r 2 at 240r
240B%vreg26:sel_z<def> = COPY %vreg16<kill>; R600_Reg128:%vreg26 R600_TReg32:%vreg16
Considering merging to R600_Reg128 with %vreg16 in %vreg26:sel_z
RHS = %vreg16 [32r,240r:0)  0 at 32r
LHS = %vreg26 [48r,64r:0)[64r,240r:1)[240r,336r:2)  0 at 48r 1 at 64r 2 at 240r
merge %vreg26:2 at 240r into %vreg16:0 at 32r --> @32r
pruned %vreg16 at 48r: [32r,48r:0)  0 at 32r
pruned %vreg16 at 64r: [32r,48r:0)  0 at 32r
pruned all of %vreg26 at 240r: [48r,64r:0)[64r,240r:1)  0 at 48r 1 at 64r 2 at 240r
erased:240r%vreg26:sel_z<def> = COPY %vreg16<kill>; R600_Reg128:%vreg26 R600_TReg32:%vreg16
restoring liveness to 4 points: [32r,48r:0)[48r,64r:1)[64r,240r:2)  0 at 32r 1 at 48r 2 at 64r
updated: 32B%vreg26:sel_z<def,read-undef> = COPY %T1_Z; R600_Reg128:%vreg26
Joined. Result = %vreg26[32r,48r:0)[48r,64r:1)[64r,336r:2)  0 at 32r 1 at 48r 2 at 64r
256B%vreg27<def> = COPY %vreg24; R600_Reg128:%vreg27,%vreg24
Considering merging to R600_Reg128 with %vreg24 in %vreg27
RHS = %vreg24 [128r,192r:0)[192r,256r:1)  0 at 128r 1 at 192r
LHS = %vreg27 [256r,272r:1)[272r,304r:0)  0 at 272r 1 at 256r
merge %vreg27:1 at 256r into %vreg24:1 at 192r --> @192r
erased:256r%vreg27<def> = COPY %vreg24; R600_Reg128:%vreg27,%vreg24
updated: 128B%vreg27:sel_x<def,read-undef> = COPY %C1_X; R600_Reg128:%vreg27
updated: 192B%vreg27:sel_y<def> = COPY %C1_Y; R600_Reg128:%vreg27
Joined. Result = %vreg27[128r,192r:0)[192r,272r:1)[272r,304r:2)  0 at 128r 1 at 192r 2 at 272r
272B%vreg27:sel_z<def> = COPY %C1_Z; R600_Reg128:%vreg27
Not coalescable.
288B%vreg28<def> = COPY %C1_W; R600_Reg32:%vreg28
Considering merging %vreg28 with %C1_W
RHS = %vreg28 [288r,320r:0)  0 at 288r
updated: 320B%vreg3:sel_w<def> = COPY %C1_W; R600_Reg128:%vreg3
Joined. Result = %C1_W
304B%vreg3<def> = COPY %vreg27; R600_Reg128:%vreg3,%vreg27
Considering merging to R600_Reg128 with %vreg27 in %vreg3
RHS = %vreg3 [304r,320r:1)[320r,416r:0)  0 at 320r 1 at 304r
LHS = %vreg27 [128r,192r:0)[192r,272r:1)[272r,304r:2)  0 at 128r 1 at 192r 2 at 272r
merge %vreg3:1 at 304r into %vreg27:2 at 272r --> @272r
erased:304r%vreg3<def> = COPY %vreg27; R600_Reg128:%vreg3,%vreg27
updated: 320B%vreg27:sel_w<def> = COPY %C1_W; R600_Reg128:%vreg27
updated: 416B%vreg32<def> = COPY %vreg27; R600_Reg128:%vreg32,%vreg27
Joined. Result = %vreg27[128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,416r:3)  0 at 128r 1 at 192r 2 at 272r 3 at 320r
320B%vreg27:sel_w<def> = COPY %C1_W; R600_Reg128:%vreg27
Not coalescable.
336B%vreg1<def> = COPY %vreg26; R600_Reg128:%vreg1,%vreg26
Considering merging to R600_Reg128 with %vreg26 in %vreg1
RHS = %vreg26 [32r,48r:0)[48r,64r:1)[64r,336r:2)  0 at 32r 1 at 48r 2 at 64r
LHS = %vreg1 [336r,352r:1)[352r,832r:0)[880B,1168B:0)  0 at 352r 1 at 336r
merge %vreg1:1 at 336r into %vreg26:2 at 64r --> @64r
erased:336r%vreg1<def> = COPY %vreg26; R600_Reg128:%vreg1,%vreg26
updated: 32B%vreg1:sel_z<def,read-undef> = COPY %T1_Z; R600_Reg128:%vreg1
updated: 64B%vreg1:sel_x<def> = COPY %T1_X; R600_Reg128:%vreg1
updated: 48B%vreg1:sel_y<def> = COPY %T1_Y; R600_Reg128:%vreg1
Joined. Result = %vreg1[32r,48r:0)[48r,64r:1)[64r,352r:2)[352r,832r:3)[880B,1168B:3)  0 at 32r 1 at 48r 2 at 64r 3 at 352r
352B%vreg1:sel_w<def> = COPY %vreg17<kill>; R600_Reg128:%vreg1 R600_TReg32:%vreg17
Considering merging to R600_Reg128 with %vreg17 in %vreg1:sel_w
RHS = %vreg17 [16r,352r:0)  0 at 16r
LHS = %vreg1 [32r,48r:0)[48r,64r:1)[64r,352r:2)[352r,832r:3)[880B,1168B:3)  0 at 32r 1 at 48r 2 at 64r 3 at 352r
merge %vreg1:3 at 352r into %vreg17:0 at 16r --> @16r
pruned %vreg17 at 32r: [16r,32r:0)  0 at 16r
pruned %vreg17 at 48r: [16r,32r:0)  0 at 16r
pruned %vreg17 at 64r: [16r,32r:0)  0 at 16r
pruned all of %vreg1 at 352r: [32r,48r:0)[48r,64r:1)[64r,352r:2)  0 at 32r 1 at 48r 2 at 64r 3 at 352r
erased:352r%vreg1:sel_w<def> = COPY %vreg17<kill>; R600_Reg128:%vreg1 R600_TReg32:%vreg17
restoring liveness to 8 points: [16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,352r:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
updated: 16B%vreg1:sel_w<def,read-undef> = COPY %T1_W; R600_Reg128:%vreg1
Joined. Result = %vreg1[16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
384B%vreg0<def> = COPY %C0_X; R600_Reg32:%vreg0
Considering merging %vreg0 with %C0_X
RHS = %vreg0 [384r,592B:0)[880B,1168B:0)  0 at 384r
updated: 512B%vreg30<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %C0_X, 0, 0, 0, %vreg49, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg30,%vreg49
Joined. Result = %C0_X
400B%vreg47<def> = COPY %C1_Y; R600_Reg32:%vreg47
Considering merging %vreg47 with %C1_Y
Cannot join defs into reserved register.
416B%vreg32<def> = COPY %vreg27; R600_Reg128:%vreg32,%vreg27
Considering merging to R600_Reg128 with %vreg27 in %vreg32
RHS = %vreg32 [416r,448B:1)[448B,704r:0)[880B,1168B:0)  0 at 448B-phi 1 at 416r
LHS = %vreg27 [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,416r:3)  0 at 128r 1 at 192r 2 at 272r 3 at 320r
merge %vreg32:1 at 416r into %vreg27:3 at 320r --> @320r
erased:416r%vreg32<def> = COPY %vreg27; R600_Reg128:%vreg32,%vreg27
updated: 608B%vreg39<def> = COPY %vreg27:sel_x; R600_Reg32:%vreg39 R600_Reg128:%vreg27
updated: 640B%vreg40<def> = COPY %vreg27:sel_y; R600_Reg32:%vreg40 R600_Reg128:%vreg27
updated: 672B%vreg41<def> = COPY %vreg27:sel_z; R600_Reg32:%vreg41 R600_Reg128:%vreg27
updated: 704B%vreg42<def> = COPY %vreg27:sel_w; R600_Reg32:%vreg42 R600_Reg128:%vreg27
updated: 976B%vreg10<def> = COPY %vreg27; R600_Reg128:%vreg10,%vreg27
updated: 1040B%vreg10:sel_w<def,dead> = COPY %vreg27:sel_w; R600_Reg128:%vreg10,%vreg27
updated: 1104B%vreg47<def> = COPY %vreg27:sel_z; R600_Reg32:%vreg47 R600_Reg128:%vreg27
Joined. Result = %vreg27[128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
432B%vreg49<def> = COPY %vreg13<kill>; R600_Reg32:%vreg49,%vreg13
Considering merging to R600_Reg32 with %vreg13 in %vreg49
RHS = %vreg13 [368r,432r:0)  0 at 368r
LHS = %vreg49 [432r,448B:0)[448B,592B:1)[880B,1088r:1)[1088r,1168B:2)  0 at 432r 1 at 448B-phi 2 at 1088r
merge %vreg49:0 at 432r into %vreg13:0 at 368r --> @368r
erased:432r%vreg49<def> = COPY %vreg13<kill>; R600_Reg32:%vreg49,%vreg13
updated: 368B%vreg49<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg49
Joined. Result = %vreg49[368r,448B:0)[448B,592B:1)[880B,1088r:1)[1088r,1168B:2)  0 at 368r 1 at 448B-phi 2 at 1088r
:
608B%vreg39<def> = COPY %vreg27:sel_x; R600_Reg32:%vreg39 R600_Reg128:%vreg27
Considering merging to R600_Reg128 with %vreg39 in %vreg27:sel_x
RHS = %vreg39 [608r,624r:0)  0 at 608r
LHS = %vreg27 [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
merge %vreg39:0 at 608r into %vreg27:4 at 448B --> @448B
erased:608r%vreg39<def> = COPY %vreg27:sel_x; R600_Reg32:%vreg39 R600_Reg128:%vreg27
updated: 624B%T2_X<def> = COPY %vreg27:sel_x; R600_Reg128:%vreg27
Joined. Result = %vreg27[128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
624B%T2_X<def> = COPY %vreg27:sel_x; R600_Reg128:%vreg27
Considering merging %vreg27 with %T2_XYZW
Can only merge into reserved registers.
640B%vreg40<def> = COPY %vreg27:sel_y; R600_Reg32:%vreg40 R600_Reg128:%vreg27
Considering merging to R600_Reg128 with %vreg40 in %vreg27:sel_y
RHS = %vreg40 [640r,656r:0)  0 at 640r
LHS = %vreg27 [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
merge %vreg40:0 at 640r into %vreg27:4 at 448B --> @448B
erased:640r%vreg40<def> = COPY %vreg27:sel_y; R600_Reg32:%vreg40 R600_Reg128:%vreg27
updated: 656B%T2_Y<def> = COPY %vreg27:sel_y; R600_Reg128:%vreg27
Joined. Result = %vreg27[128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
656B%T2_Y<def> = COPY %vreg27:sel_y; R600_Reg128:%vreg27
Considering merging %vreg27 with %T2_XYZW
Can only merge into reserved registers.
672B%vreg41<def> = COPY %vreg27:sel_z; R600_Reg32:%vreg41 R600_Reg128:%vreg27
Considering merging to R600_Reg128 with %vreg41 in %vreg27:sel_z
RHS = %vreg41 [672r,688r:0)  0 at 672r
LHS = %vreg27 [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
merge %vreg41:0 at 672r into %vreg27:4 at 448B --> @448B
erased:672r%vreg41<def> = COPY %vreg27:sel_z; R600_Reg32:%vreg41 R600_Reg128:%vreg27
updated: 688B%T2_Z<def> = COPY %vreg27:sel_z; R600_Reg128:%vreg27
Joined. Result = %vreg27[128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
688B%T2_Z<def> = COPY %vreg27:sel_z; R600_Reg128:%vreg27
Considering merging %vreg27 with %T2_XYZW
Can only merge into reserved registers.
704B%vreg42<def> = COPY %vreg27:sel_w; R600_Reg32:%vreg42 R600_Reg128:%vreg27
Considering merging to R600_Reg128 with %vreg42 in %vreg27:sel_w
RHS = %vreg42 [704r,720r:0)  0 at 704r
LHS = %vreg27 [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,704r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
merge %vreg42:0 at 704r into %vreg27:4 at 448B --> @448B
erased:704r%vreg42<def> = COPY %vreg27:sel_w; R600_Reg32:%vreg42 R600_Reg128:%vreg27
updated: 720B%T2_W<def> = COPY %vreg27:sel_w; R600_Reg128:%vreg27
Joined. Result = %vreg27[128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
720B%T2_W<def> = COPY %vreg27:sel_w; R600_Reg128:%vreg27
Considering merging %vreg27 with %T2_XYZW
Can only merge into reserved registers.
736B%vreg43<def> = COPY %vreg1:sel_x; R600_Reg32:%vreg43 R600_Reg128:%vreg1
Considering merging to R600_Reg128 with %vreg43 in %vreg1:sel_x
RHS = %vreg43 [736r,752r:0)  0 at 736r
LHS = %vreg1 [16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
merge %vreg43:0 at 736r into %vreg1:3 at 64r --> @64r
erased:736r%vreg43<def> = COPY %vreg1:sel_x; R600_Reg32:%vreg43 R600_Reg128:%vreg1
updated: 752B%T1_X<def> = COPY %vreg1:sel_x; R600_Reg128:%vreg1
Joined. Result = %vreg1[16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
752B%T1_X<def> = COPY %vreg1:sel_x; R600_Reg128:%vreg1
Considering merging %vreg1 with %T1_XYZW
Can only merge into reserved registers.
768B%vreg44<def> = COPY %vreg1:sel_y; R600_Reg32:%vreg44 R600_Reg128:%vreg1
Considering merging to R600_Reg128 with %vreg44 in %vreg1:sel_y
RHS = %vreg44 [768r,784r:0)  0 at 768r
LHS = %vreg1 [16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
merge %vreg44:0 at 768r into %vreg1:3 at 64r --> @64r
erased:768r%vreg44<def> = COPY %vreg1:sel_y; R600_Reg32:%vreg44 R600_Reg128:%vreg1
updated: 784B%T1_Y<def> = COPY %vreg1:sel_y; R600_Reg128:%vreg1
Joined. Result = %vreg1[16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
784B%T1_Y<def> = COPY %vreg1:sel_y; R600_Reg128:%vreg1
Considering merging %vreg1 with %T1_XYZW
Can only merge into reserved registers.
800B%vreg45<def> = COPY %vreg1:sel_z; R600_Reg32:%vreg45 R600_Reg128:%vreg1
Considering merging to R600_Reg128 with %vreg45 in %vreg1:sel_z
RHS = %vreg45 [800r,816r:0)  0 at 800r
LHS = %vreg1 [16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
merge %vreg45:0 at 800r into %vreg1:3 at 64r --> @64r
erased:800r%vreg45<def> = COPY %vreg1:sel_z; R600_Reg32:%vreg45 R600_Reg128:%vreg1
updated: 816B%T1_Z<def> = COPY %vreg1:sel_z; R600_Reg128:%vreg1
Joined. Result = %vreg1[16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
816B%T1_Z<def> = COPY %vreg1:sel_z; R600_Reg128:%vreg1
Considering merging %vreg1 with %T1_XYZW
Can only merge into reserved registers.
832B%vreg46<def> = COPY %vreg1:sel_w; R600_Reg32:%vreg46 R600_Reg128:%vreg1
Considering merging to R600_Reg128 with %vreg46 in %vreg1:sel_w
RHS = %vreg46 [832r,848r:0)  0 at 832r
LHS = %vreg1 [16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,832r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
merge %vreg46:0 at 832r into %vreg1:3 at 64r --> @64r
erased:832r%vreg46<def> = COPY %vreg1:sel_w; R600_Reg32:%vreg46 R600_Reg128:%vreg1
updated: 848B%T1_W<def> = COPY %vreg1:sel_w; R600_Reg128:%vreg1
Joined. Result = %vreg1[16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,848r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
848B%T1_W<def> = COPY %vreg1:sel_w; R600_Reg128:%vreg1
Considering merging %vreg1 with %T1_XYZW
Can only merge into reserved registers.
976B%vreg10<def> = COPY %vreg27; R600_Reg128:%vreg10,%vreg27
Considering merging to R600_Reg128 with %vreg27 in %vreg10
RHS = %vreg10 [976r,992r:0)[992r,1040r:1)[1040r,1040d:2)  0 at 976r 1 at 992r 2 at 1040r
LHS = %vreg27 [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
merge %vreg10:0 at 976r into %vreg27:4 at 448B --> @448B
interference at %vreg10:1 at 992r
Interference!
992B%vreg10:sel_z<def> = COPY %vreg47; R600_Reg128:%vreg10 R600_Reg32:%vreg47
Considering merging to R600_Reg128 with %vreg47 in %vreg10:sel_z
RHS = %vreg47 [400r,448B:0)[448B,592B:1)[880B,992r:1)[1104r,1168B:2)  0 at 400r 1 at 448B-phi 2 at 1104r
LHS = %vreg10 [976r,992r:0)[992r,1040r:1)[1040r,1040d:2)  0 at 976r 1 at 992r 2 at 1040r
interference at %vreg10:0 at 976r
Interference!
1040B%vreg10:sel_w<def,dead> = COPY %vreg27:sel_w; R600_Reg128:%vreg10,%vreg27
Copy is dead.
Deleting dead def 1040r%vreg10:sel_w<def,dead> = COPY %vreg27:sel_w; R600_Reg128:%vreg10,%vreg27
Shrink: [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
 live-in at 592B
 live-in at 880B
Shrunk: [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
Shrink: [976r,992r:0)[992r,1040r:1)  0 at 976r 1 at 992r
All defs dead: 992r%vreg10:sel_z<def,dead> = COPY %vreg47; R600_Reg128:%vreg10 R600_Reg32:%vreg47
Shrunk: [976r,992r:0)[992r,992d:1)  0 at 976r 1 at 992r
Deleting dead def 992r%vreg10:sel_z<def,dead> = COPY %vreg47; R600_Reg128:%vreg10 R600_Reg32:%vreg47
Shrink: [400r,448B:0)[448B,592B:1)[880B,992r:1)[1104r,1168B:2)  0 at 400r 1 at 448B-phi 2 at 1104r
All defs dead: 400r%vreg47<def,dead> = COPY %C1_Y; R600_Reg32:%vreg47
Dead PHI at invalid may separate interval
All defs dead: 1104r%vreg47<def,dead> = COPY %vreg27:sel_z; R600_Reg32:%vreg47 R600_Reg128:%vreg27
Shrunk: [400r,400d:0)[1104r,1104d:2)  0 at 400r 1 at x 2 at 1104r
2 components: [400r,400d:0)[1104r,1104d:1)  0 at 400r 1 at 1104r
[400r,400d:0)  0 at 400r
[1104r,1104d:0)  0 at 1104r
Deleting dead def 1104r%vreg50<def,dead> = COPY %vreg27:sel_z; R600_Reg32:%vreg50 R600_Reg128:%vreg27
Deleting dead def 400r%vreg47<def,dead> = COPY %C1_Y; R600_Reg32:%vreg47
Shrink: [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
 live-in at 592B
 live-in at 880B
Shrunk: [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
Shrink: [976r,992r:0)  0 at 976r
All defs dead: 976r%vreg10<def,dead> = COPY %vreg27; R600_Reg128:%vreg10,%vreg27
Shrunk: [976r,976d:0)  0 at 976r
Deleting dead def 976r%vreg10<def,dead> = COPY %vreg27; R600_Reg128:%vreg10,%vreg27
Shrink: [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
 live-in at 592B
 live-in at 880B
Shrunk: [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
Trying to inflate 0 regs.
********** INTERVALS **********
C0_X = EMPTY
C1_W = EMPTY
C1_X = EMPTY
C1_Y = EMPTY
C1_Z = EMPTY
T1_W = [0B,16r:0)[848r,864r:1)  0 at 0B-phi 1 at 848r
T1_X = [0B,64r:0)[752r,864r:1)  0 at 0B-phi 1 at 752r
T1_Y = [0B,48r:0)[784r,864r:1)  0 at 0B-phi 1 at 784r
T1_Z = [0B,32r:0)[816r,864r:1)  0 at 0B-phi 1 at 816r
%vreg1 = [16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,848r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
%vreg27 = [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
%vreg30 = [512r,544r:0)  0 at 512r
%vreg38 = [1072r,1088r:0)  0 at 1072r
%vreg49 = [368r,448B:0)[448B,592B:1)[880B,1088r:1)[1088r,1168B:2)  0 at 368r 1 at 448B-phi 2 at 1088r
********** MACHINEINSTRS **********
# Machine code for function main: Post SSA
Function Live Ins: %T1_X in %vreg14, %T1_Y in %vreg15, %T1_Z in %vreg16, %T1_W in %vreg17
Function Live Outs: %T1_W %T1_Z %T1_Y %T1_X %T2_W %T2_Z %T2_Y %T2_X

0BBB#0: derived from LLVM BB %0
    Live Ins: %T1_X %T1_Y %T1_Z %T1_W
16B%vreg1:sel_w<def,read-undef> = COPY %T1_W; R600_Reg128:%vreg1
32B%vreg1:sel_z<def> = COPY %T1_Z; R600_Reg128:%vreg1
48B%vreg1:sel_y<def> = COPY %T1_Y; R600_Reg128:%vreg1
64B%vreg1:sel_x<def> = COPY %T1_X; R600_Reg128:%vreg1
128B%vreg27:sel_x<def,read-undef> = COPY %C1_X; R600_Reg128:%vreg27
192B%vreg27:sel_y<def> = COPY %C1_Y; R600_Reg128:%vreg27
272B%vreg27:sel_z<def> = COPY %C1_Z; R600_Reg128:%vreg27
320B%vreg27:sel_w<def> = COPY %C1_W; R600_Reg128:%vreg27
368B%vreg49<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg49
    Successors according to CFG: BB#1

448BBB#1: derived from LLVM BB %25
    Predecessors according to CFG: BB#0 BB#3
512B%vreg30<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %C0_X, 0, 0, 0, %vreg49, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg30,%vreg49
544B%PREDICATE_BIT<def> = PRED_X %vreg30, 152, 16; R600_Reg32:%vreg30
560BJUMP <BB#3>, pred:%PREDICATE_BIT
576BJUMP <BB#2>, pred:%noreg
    Successors according to CFG: BB#2(4) BB#3(124)

592BBB#2: derived from LLVM BB %31
    Predecessors according to CFG: BB#1
624B%T2_X<def> = COPY %vreg27:sel_x; R600_Reg128:%vreg27
656B%T2_Y<def> = COPY %vreg27:sel_y; R600_Reg128:%vreg27
688B%T2_Z<def> = COPY %vreg27:sel_z; R600_Reg128:%vreg27
720B%T2_W<def> = COPY %vreg27:sel_w; R600_Reg128:%vreg27
752B%T1_X<def> = COPY %vreg1:sel_x; R600_Reg128:%vreg1
784B%T1_Y<def> = COPY %vreg1:sel_y; R600_Reg128:%vreg1
816B%T1_Z<def> = COPY %vreg1:sel_z; R600_Reg128:%vreg1
848B%T1_W<def> = COPY %vreg1:sel_w; R600_Reg128:%vreg1
864BRETURN %T1_W<imp-use>, %T1_Z<imp-use>, %T1_Y<imp-use>, %T1_X<imp-use>, %T2_W<imp-use,kill>, %T2_Z<imp-use,kill>, %T2_Y<imp-use,kill>, %T2_X<imp-use,kill>

880BBB#3: derived from LLVM BB %41
    Predecessors according to CFG: BB#1
1072B%vreg38<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 1; R600_Reg32:%vreg38
1088B%vreg49<def> = ADD_INT 0, 0, 1, 0, 0, 0, %vreg49, 0, 0, 0, %vreg38<kill>, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg49,%vreg38
1152BJUMP <BB#1>, pred:%noreg
    Successors according to CFG: BB#1

# End machine code for function main.

********** DEBUG VARIABLES **********
********** GREEDY REGISTER ALLOCATION **********
********** Function: main

selectOrSplit R600_Reg128:%vreg1 [16r,32r:0)[32r,48r:1)[48r,64r:2)[64r,848r:3)[880B,1168B:3)  0 at 16r 1 at 32r 2 at 48r 3 at 64r
AllocationOrder(R600_Reg128) = [ %T1_XYZW %T2_XYZW %T3_XYZW %T4_XYZW %T5_XYZW %T6_XYZW %T7_XYZW %T8_XYZW %T9_XYZW %T10_XYZW %T11_XYZW %T12_XYZW %T13_XYZW %T14_XYZW %T15_XYZW %T16_XYZW %T17_XYZW %T18_XYZW %T19_XYZW %T20_XYZW %T21_XYZW %T22_XYZW %T23_XYZW %T24_XYZW %T25_XYZW %T26_XYZW %T27_XYZW %T28_XYZW %T29_XYZW %T30_XYZW %T31_XYZW %T32_XYZW %T33_XYZW %T34_XYZW %T35_XYZW %T36_XYZW %T37_XYZW %T38_XYZW %T39_XYZW %T40_XYZW %T41_XYZW %T42_XYZW %T43_XYZW %T44_XYZW %T45_XYZW %T46_XYZW %T47_XYZW %T48_XYZW %T49_XYZW %T50_XYZW %T51_XYZW %T52_XYZW %T53_XYZW %T54_XYZW %T55_XYZW %T56_XYZW %T57_XYZW %T58_XYZW %T59_XYZW %T60_XYZW %T61_XYZW %T62_XYZW %T63_XYZW %T64_XYZW %T65_XYZW %T66_XYZW %T67_XYZW %T68_XYZW %T69_XYZW %T70_XYZW %T71_XYZW %T72_XYZW %T73_XYZW %T74_XYZW %T75_XYZW %T76_XYZW %T77_XYZW %T78_XYZW %T79_XYZW %T80_XYZW %T81_XYZW %T82_XYZW %T83_XYZW %T84_XYZW %T85_XYZW %T86_XYZW %T87_XYZW %T88_XYZW %T89_XYZW %T90_XYZW %T91_XYZW %T92_XYZW %T93_XYZW %T94_XYZW
 %T95_XYZW %T96_XYZW %T97_XYZW %T98_XYZW %T99_XYZW %T100_XYZW %T101_XYZW %T102_XYZW %T103_XYZW %T104_XYZW %T105_XYZW %T106_XYZW %T107_XYZW %T108_XYZW %T109_XYZW %T110_XYZW %T111_XYZW %T112_XYZW %T113_XYZW %T114_XYZW %T115_XYZW %T116_XYZW %T117_XYZW %T118_XYZW %T119_XYZW %T120_XYZW %T121_XYZW %T122_XYZW %T123_XYZW %T124_XYZW %T125_XYZW %T126_XYZW %T127_XYZW ]
assigning %vreg1 to %T1_XYZW: T1_W T1_X T1_Y T1_Z

selectOrSplit R600_Reg128:%vreg27 [128r,192r:0)[192r,272r:1)[272r,320r:2)[320r,448B:3)[448B,720r:4)[880B,1168B:4)  0 at 128r 1 at 192r 2 at 272r 3 at 320r 4 at 448B-phi
assigning %vreg27 to %T2_XYZW: T2_W T2_X T2_Y T2_Z

selectOrSplit R600_Reg32:%vreg49 [368r,448B:0)[448B,592B:1)[880B,1088r:1)[1088r,1168B:2)  0 at 368r 1 at 448B-phi 2 at 1088r
AllocationOrder(R600_Reg32) = [ %T1_X %T1_Y %T1_Z %T1_W %T2_X %T2_Y %T2_Z %T2_W %T3_X %T3_Y %T3_Z %T3_W %T4_X %T4_Y %T4_Z %T4_W %T5_X %T5_Y %T5_Z %T5_W %T6_X %T6_Y %T6_Z %T6_W %T7_X %T7_Y %T7_Z %T7_W %T8_X %T8_Y %T8_Z %T8_W %T9_X %T9_Y %T9_Z %T9_W %T10_X %T10_Y %T10_Z %T10_W %T11_X %T11_Y %T11_Z %T11_W %T12_X %T12_Y %T12_Z %T12_W %T13_X %T13_Y %T13_Z %T13_W %T14_X %T14_Y %T14_Z %T14_W %T15_X %T15_Y %T15_Z %T15_W %T16_X %T16_Y %T16_Z %T16_W %T17_X %T17_Y %T17_Z %T17_W %T18_X %T18_Y %T18_Z %T18_W %T19_X %T19_Y %T19_Z %T19_W %T20_X %T20_Y %T20_Z %T20_W %T21_X %T21_Y %T21_Z %T21_W %T22_X %T22_Y %T22_Z %T22_W %T23_X %T23_Y %T23_Z %T23_W %T24_X %T24_Y %T24_Z %T24_W %T25_X %T25_Y %T25_Z %T25_W %T26_X %T26_Y %T26_Z %T26_W %T27_X %T27_Y %T27_Z %T27_W %T28_X %T28_Y %T28_Z %T28_W %T29_X %T29_Y %T29_Z %T29_W %T30_X %T30_Y %T30_Z %T30_W %T31_X %T31_Y %T31_Z %T31_W %T32_X %T32_Y %T32_Z %T32_W %T33_X %T33_Y %T33_Z %T33_W %T34_X %T34_Y %T34_Z %T34_W %T35_X %T35_Y %T35_Z
 %T35_W %T36_X %T36_Y %T36_Z %T36_W %T37_X %T37_Y %T37_Z %T37_W %T38_X %T38_Y %T38_Z %T38_W %T39_X %T39_Y %T39_Z %T39_W %T40_X %T40_Y %T40_Z %T40_W %T41_X %T41_Y %T41_Z %T41_W %T42_X %T42_Y %T42_Z %T42_W %T43_X %T43_Y %T43_Z %T43_W %T44_X %T44_Y %T44_Z %T44_W %T45_X %T45_Y %T45_Z %T45_W %T46_X %T46_Y %T46_Z %T46_W %T47_X %T47_Y %T47_Z %T47_W %T48_X %T48_Y %T48_Z %T48_W %T49_X %T49_Y %T49_Z %T49_W %T50_X %T50_Y %T50_Z %T50_W %T51_X %T51_Y %T51_Z %T51_W %T52_X %T52_Y %T52_Z %T52_W %T53_X %T53_Y %T53_Z %T53_W %T54_X %T54_Y %T54_Z %T54_W %T55_X %T55_Y %T55_Z %T55_W %T56_X %T56_Y %T56_Z %T56_W %T57_X %T57_Y %T57_Z %T57_W %T58_X %T58_Y %T58_Z %T58_W %T59_X %T59_Y %T59_Z %T59_W %T60_X %T60_Y %T60_Z %T60_W %T61_X %T61_Y %T61_Z %T61_W %T62_X %T62_Y %T62_Z %T62_W %T63_X %T63_Y %T63_Z %T63_W %T64_X %T64_Y %T64_Z %T64_W %T65_X %T65_Y %T65_Z %T65_W %T66_X %T66_Y %T66_Z %T66_W %T67_X %T67_Y %T67_Z %T67_W %T68_X %T68_Y %T68_Z %T68_W %T69_X %T69_Y %T69_Z %T69_W %T70_X
 %T70_Y %T70_Z %T70_W %T71_X %T71_Y %T71_Z %T71_W %T72_X %T72_Y %T72_Z %T72_W %T73_X %T73_Y %T73_Z %T73_W %T74_X %T74_Y %T74_Z %T74_W %T75_X %T75_Y %T75_Z %T75_W %T76_X %T76_Y %T76_Z %T76_W %T77_X %T77_Y %T77_Z %T77_W %T78_X %T78_Y %T78_Z %T78_W %T79_X %T79_Y %T79_Z %T79_W %T80_X %T80_Y %T80_Z %T80_W %T81_X %T81_Y %T81_Z %T81_W %T82_X %T82_Y %T82_Z %T82_W %T83_X %T83_Y %T83_Z %T83_W %T84_X %T84_Y %T84_Z %T84_W %T85_X %T85_Y %T85_Z %T85_W %T86_X %T86_Y %T86_Z %T86_W %T87_X %T87_Y %T87_Z %T87_W %T88_X %T88_Y %T88_Z %T88_W %T89_X %T89_Y %T89_Z %T89_W %T90_X %T90_Y %T90_Z %T90_W %T91_X %T91_Y %T91_Z %T91_W %T92_X %T92_Y %T92_Z %T92_W %T93_X %T93_Y %T93_Z %T93_W %T94_X %T94_Y %T94_Z %T94_W %T95_X %T95_Y %T95_Z %T95_W %T96_X %T96_Y %T96_Z %T96_W %T97_X %T97_Y %T97_Z %T97_W %T98_X %T98_Y %T98_Z %T98_W %T99_X %T99_Y %T99_Z %T99_W %T100_X %T100_Y %T100_Z %T100_W %T101_X %T101_Y %T101_Z %T101_W %T102_X %T102_Y %T102_Z %T102_W %T103_X %T103_Y %T103_Z %T103_W
 %T104_X %T104_Y %T104_Z %T104_W %T105_X %T105_Y %T105_Z %T105_W %T106_X %T106_Y %T106_Z %T106_W %T107_X %T107_Y %T107_Z %T107_W %T108_X %T108_Y %T108_Z %T108_W %T109_X %T109_Y %T109_Z %T109_W %T110_X %T110_Y %T110_Z %T110_W %T111_X %T111_Y %T111_Z %T111_W %T112_X %T112_Y %T112_Z %T112_W %T113_X %T113_Y %T113_Z %T113_W %T114_X %T114_Y %T114_Z %T114_W %T115_X %T115_Y %T115_Z %T115_W %T116_X %T116_Y %T116_Z %T116_W %T117_X %T117_Y %T117_Z %T117_W %T118_X %T118_Y %T118_Z %T118_W %T119_X %T119_Y %T119_Z %T119_W %T120_X %T120_Y %T120_Z %T120_W %T121_X %T121_Y %T121_Z %T121_W %T122_X %T122_Y %T122_Z %T122_W %T123_X %T123_Y %T123_Z %T123_W %T124_X %T124_Y %T124_Z %T124_W %T125_X %T125_Y %T125_Z %T125_W %T126_X %T126_Y %T126_Z %T126_W %T127_X %T127_Y %T127_Z %T127_W %ArrayBase448 %ArrayBase449 %ArrayBase450 %ArrayBase451 %ArrayBase452 %ArrayBase453 %ArrayBase454 %ArrayBase455 %ArrayBase456 %ArrayBase457 %ArrayBase458 %ArrayBase459 %ArrayBase460 %ArrayBase461
 %ArrayBase462 %ArrayBase463 %ArrayBase464 ]
assigning %vreg49 to %T3_X: T3_X

selectOrSplit R600_Reg32:%vreg30 [512r,544r:0)  0 at 512r
assigning %vreg30 to %T3_Y: T3_Y

selectOrSplit R600_Reg32:%vreg38 [1072r,1088r:0)  0 at 1072r
assigning %vreg38 to %T3_Y: T3_Y
********** REWRITE VIRTUAL REGISTERS **********
********** Function: main
********** REGISTER MAP **********
[%vreg1 -> %T1_XYZW] R600_Reg128
[%vreg27 -> %T2_XYZW] R600_Reg128
[%vreg30 -> %T3_Y] R600_Reg32
[%vreg38 -> %T3_Y] R600_Reg32
[%vreg49 -> %T3_X] R600_Reg32

0BBB#0: derived from LLVM BB %0
    Live Ins: %T1_X %T1_Y %T1_Z %T1_W
16B%vreg1:sel_w<def,read-undef> = COPY %T1_W; R600_Reg128:%vreg1
32B%vreg1:sel_z<def> = COPY %T1_Z; R600_Reg128:%vreg1
48B%vreg1:sel_y<def> = COPY %T1_Y; R600_Reg128:%vreg1
64B%vreg1:sel_x<def> = COPY %T1_X; R600_Reg128:%vreg1
128B%vreg27:sel_x<def,read-undef> = COPY %C1_X; R600_Reg128:%vreg27
192B%vreg27:sel_y<def> = COPY %C1_Y; R600_Reg128:%vreg27
272B%vreg27:sel_z<def> = COPY %C1_Z; R600_Reg128:%vreg27
320B%vreg27:sel_w<def> = COPY %C1_W; R600_Reg128:%vreg27
368B%vreg49<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg49
    Successors according to CFG: BB#1
> %T1_W<def> = COPY %T1_W, %T1_XYZW<imp-def>
Identity copy: %T1_W<def> = KILL %T1_W, %T1_XYZW<imp-def>
> %T1_Z<def> = COPY %T1_Z, %T1_XYZW<imp-use,kill>, %T1_XYZW<imp-def>
Identity copy: %T1_Z<def> = KILL %T1_Z, %T1_XYZW<imp-use,kill>, %T1_XYZW<imp-def>
> %T1_Y<def> = COPY %T1_Y, %T1_XYZW<imp-use,kill>, %T1_XYZW<imp-def>
Identity copy: %T1_Y<def> = KILL %T1_Y, %T1_XYZW<imp-use,kill>, %T1_XYZW<imp-def>
> %T1_X<def> = COPY %T1_X, %T1_XYZW<imp-use,kill>, %T1_XYZW<imp-def>
Identity copy: %T1_X<def> = KILL %T1_X, %T1_XYZW<imp-use,kill>, %T1_XYZW<imp-def>
> %T2_X<def> = COPY %C1_X, %T2_XYZW<imp-def>
> %T2_Y<def> = COPY %C1_Y, %T2_XYZW<imp-use,kill>, %T2_XYZW<imp-def>
> %T2_Z<def> = COPY %C1_Z, %T2_XYZW<imp-use,kill>, %T2_XYZW<imp-def>
> %T2_W<def> = COPY %C1_W, %T2_XYZW<imp-use,kill>, %T2_XYZW<imp-def>
> %T3_X<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0
448BBB#1: derived from LLVM BB %25
    Live Ins: %T1_XYZW %T2_XYZW %T3_X
    Predecessors according to CFG: BB#0 BB#3
512B%vreg30<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %C0_X, 0, 0, 0, %vreg49, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg30,%vreg49
544B%PREDICATE_BIT<def> = PRED_X %vreg30<kill>, 152, 16; R600_Reg32:%vreg30
560BJUMP <BB#3>, pred:%PREDICATE_BIT
576BJUMP <BB#2>, pred:%noreg
    Successors according to CFG: BB#2(4) BB#3(124)
> %T3_Y<def> = SETGT_INT 0, 0, 1, 0, 0, 0, %C0_X, 0, 0, 0, %T3_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0
> %PREDICATE_BIT<def> = PRED_X %T3_Y<kill>, 152, 16
> JUMP <BB#3>, pred:%PREDICATE_BIT
> JUMP <BB#2>, pred:%noreg
592BBB#2: derived from LLVM BB %31
    Live Ins: %T1_XYZW %T2_XYZW
    Predecessors according to CFG: BB#1
624B%T2_X<def> = COPY %vreg27:sel_x; R600_Reg128:%vreg27
656B%T2_Y<def> = COPY %vreg27:sel_y; R600_Reg128:%vreg27
688B%T2_Z<def> = COPY %vreg27:sel_z; R600_Reg128:%vreg27
720B%T2_W<def> = COPY %vreg27:sel_w; R600_Reg128:%vreg27
752B%T1_X<def> = COPY %vreg1:sel_x; R600_Reg128:%vreg1
784B%T1_Y<def> = COPY %vreg1:sel_y; R600_Reg128:%vreg1
816B%T1_Z<def> = COPY %vreg1:sel_z; R600_Reg128:%vreg1
848B%T1_W<def> = COPY %vreg1:sel_w; R600_Reg128:%vreg1
864BRETURN %T1_W<imp-use>, %T1_Z<imp-use>, %T1_Y<imp-use>, %T1_X<imp-use>, %T2_W<imp-use>, %T2_Z<imp-use>, %T2_Y<imp-use>, %T2_X<imp-use>
> %T2_X<def> = COPY %T2_X
Deleting identity copy.
> %T2_Y<def> = COPY %T2_Y
Deleting identity copy.
> %T2_Z<def> = COPY %T2_Z
Deleting identity copy.
> %T2_W<def> = COPY %T2_W
Deleting identity copy.
> %T1_X<def> = COPY %T1_X
Deleting identity copy.
> %T1_Y<def> = COPY %T1_Y
Deleting identity copy.
> %T1_Z<def> = COPY %T1_Z
Deleting identity copy.
> %T1_W<def> = COPY %T1_W
Deleting identity copy.
> RETURN %T1_W<imp-use>, %T1_Z<imp-use>, %T1_Y<imp-use>, %T1_X<imp-use>, %T2_W<imp-use>, %T2_Z<imp-use>, %T2_Y<imp-use>, %T2_X<imp-use>
880BBB#3: derived from LLVM BB %41
    Live Ins: %T1_XYZW %T2_XYZW %T3_X
    Predecessors according to CFG: BB#1
1072B%vreg38<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 1; R600_Reg32:%vreg38
1088B%vreg49<def> = ADD_INT 0, 0, 1, 0, 0, 0, %vreg49<kill>, 0, 0, 0, %vreg38<kill>, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0; R600_Reg32:%vreg49,%vreg38
1152BJUMP <BB#1>, pred:%noreg
    Successors according to CFG: BB#1
> %T3_Y<def> = MOV 1, 0, 0, 0, %ALU_LITERAL_X, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 1
> %T3_X<def> = ADD_INT 0, 0, 1, 0, 0, 0, %T3_X<kill>, 0, 0, 0, %T3_Y<kill>, 0, 0, 0, 1, pred:%PRED_SEL_OFF, 0
> JUMP <BB#1>, pred:%noreg




More information about the llvm-dev mailing list