Lines Matching +full:chan +full:- +full:name
2 class R600Reg <string name, bits<16> encoding> : Register<name> {
7 class R600RegWithChan <string name, bits<9> sel, string chan> :
8 Register <name> {
10 field bits<2> chan_encoding = !if(!eq(chan, "X"), 0,
11 !if(!eq(chan, "Y"), 1,
12 !if(!eq(chan, "Z"), 2,
13 !if(!eq(chan, "W"), 3, 0))));
14 let HWEncoding{8-0} = sel;
15 let HWEncoding{10-9} = chan_encoding;
24 let HWEncoding{8-0} = encoding{8-0};
25 let HWEncoding{10-9} = chan_encoding;
34 let HWEncoding{8-0} = encoding{8-0};
35 let HWEncoding{10-9} = chan_encoding;
38 class R600Reg_64Vertical<int lo, int hi, string chan> : R600Reg_64 <
39 "V"#lo#hi#"_"#chan,
40 [!cast<Register>("T"#lo#"_"#chan), !cast<Register>("T"#hi#"_"#chan)],
44 foreach Index = 0-127 in {
45 foreach Chan = [ "X", "Y", "Z", "W" ] in {
46 // 32-bit Temporary Registers
47 def T#Index#_#Chan : R600RegWithChan <"T"#Index#"."#Chan, Index, Chan>;
50 def Addr#Index#_#Chan : R600RegWithChan <"T("#Index#" + AR.x)."#Chan,
51 Index, Chan>;
53 // 128-bit Temporary Registers
67 foreach Chan = [ "X", "Y", "Z", "W"] in {
69 let chan_encoding = !if(!eq(Chan, "X"), 0,
70 !if(!eq(Chan, "Y"), 1,
71 !if(!eq(Chan, "Z"), 2,
72 !if(!eq(Chan, "W"), 3, 0)))) in {
73 def V0123_#Chan : R600Reg_128 <"V0123_"#Chan,
74 [!cast<Register>("T0_"#Chan),
75 !cast<Register>("T1_"#Chan),
76 !cast<Register>("T2_"#Chan),
77 !cast<Register>("T3_"#Chan)],
79 def V01_#Chan : R600Reg_64Vertical<0, 1, Chan>;
80 def V23_#Chan : R600Reg_64Vertical<2, 3, Chan>;
86 foreach Index = 159-128 in {
87 foreach Chan = [ "X", "Y", "Z", "W" ] in {
88 // 32-bit Temporary Registers
89 def KC0_#Index#_#Chan : R600RegWithChan <"KC0["#!add(Index,-128)#"]."#Chan, Index, Chan>;
91 // 128-bit Temporary Registers
92 def KC0_#Index#_XYZW : R600Reg_128 <"KC0["#!add(Index, -128)#"].XYZW",
101 foreach Index = 191-160 in {
102 foreach Chan = [ "X", "Y", "Z", "W" ] in {
103 // 32-bit Temporary Registers
104 def KC1_#Index#_#Chan : R600RegWithChan <"KC1["#!add(Index,-160)#"]."#Chan, Index, Chan>;
106 // 128-bit Temporary Registers
107 def KC1_#Index#_XYZW : R600Reg_128 <"KC1["#!add(Index, -160)#"].XYZW",
117 foreach Index = 448-480 in {
132 def NEG_ONE : R600Reg<"-1.0", 249>;
135 def NEG_HALF : R600Reg<"-0.5", 252>;
244 let CopyCost = -1;