search for: regf32

Displaying 17 results from an estimated 17 matches for "regf32".

Did you mean: reg32
2011 Aug 24
1
[LLVMdev] proposal: add macro expansion of for-loop to TableGen
...itive cost to understand macro expansion, since it removes a lot of redundancy, I think it is actually more readable. (excerpt of PTXInstrInfo.td) ---------------------------------------- multiclass PTX_FLOAT_4OP<string opcstr, SDNode opnode1, SDNode opnode2> { def rrr32 : InstPTX<(outs RegF32:$d), (ins RegF32:$a, RegF32:$b, RegF32:$c), !strconcat(opcstr, ".f32\t$d, $a, $b, $c"), [(set RegF32:$d, (opnode2 (opnode1 RegF32:$a, RegF32:$b),...
2011 Oct 07
6
[LLVMdev] Enhancing TableGen
...that can create them. I think this > was the primary motivation behind Che-Liang's proposal. Ok. We agree here. > I do NOT want to factor out redundancy from instruction definitions like this: > > multiclass PTX_FLOAT_3OP<string opcstr> { > def rr32 : InstPTX<(outs RegF32:$d), > (ins RndMode:$r, RegF32:$a, RegF32:$b), > !strconcat(opcstr, "$r.f32\t$d, $a, $b"), []>; > def ri32 : InstPTX<(outs RegF32:$d), > (ins RndMode:$r, RegF32:$a, f32imm:$b), > !st...
2011 Oct 07
0
[LLVMdev] Enhancing TableGen
...ue, and I would welcome a for-loop construct that can create them. I think this was the primary motivation behind Che-Liang's proposal. I do NOT want to factor out redundancy from instruction definitions like this: multiclass PTX_FLOAT_3OP<string opcstr> { def rr32 : InstPTX<(outs RegF32:$d), (ins RndMode:$r, RegF32:$a, RegF32:$b), !strconcat(opcstr, "$r.f32\t$d, $a, $b"), []>; def ri32 : InstPTX<(outs RegF32:$d), (ins RndMode:$r, RegF32:$a, f32imm:$b), !strconcat(opcstr, "$r....
2011 Oct 07
0
[LLVMdev] Enhancing TableGen
...ed somewhat by doing something like this: > > class binary_pattern<string opcstr, string type> { > string pattern = !strconcat(opcstr, "$r."#type#"\t$d, $a, $b"); > } > > multiclass PTX_FLOAT_3OP<string opcstr> { > def rr32 : InstPTX<(outs RegF32:$d), > (ins RndMode:$r, RegF32:$a, RegF32:$b), > binary_pattern<opcstrm "f32">.pattern, []>; > def ri32 : InstPTX<(outs RegF32:$d), > (ins RndMode:$r, RegF32:$a, f32imm:$b), > binar...
2011 Sep 29
1
[LLVMdev] Floating-Point Constants in TableGen?
...TableGen definitions? Let's say I have the following pattern: def : Pat<(i1 (trunc RegI16:$a)), (SETPGTu16ri RegI16:$a, 0)>; Note the zero constant in the result. Is there a way to represent floating-point literals in the same way? Something like... def : Pat<(i1 (uint_to_fp RegF32:$a)), (SETPGTf32ri RegF32:$a, (f32 0.0))>; This unfortunately does not work. Right now I'm getting around this by using alternate instructions to first convert from an integer immediate, something like: def : Pat<(i1 (uint_to_fp RegF32:$a)), (SETPGTf32ri RegF32:$a, (MOVf32i32...
2011 Oct 07
6
[LLVMdev] Enhancing TableGen
Evan Cheng <evan.cheng at apple.com> writes: > David, we cannot accept the 'multidef' keyword. Please revert it. Working on it now. > We appreciate you thinking ahead about MIC, but we are against the > massive refactoring and complicated abstraction scheme. We'll never > accept those patches. How about a less massive and complicated scheme? I think we can make
2011 Oct 06
4
[LLVMdev] TableGen and Greenspun
...to be too limiting. In this example: (Equivalent TableGen code with a for-loop) ---------------------------------------- multiclass PTX_FLOAT_4OP<string opcstr, SDNode opnode1, SDNode opnode2> { for nbit = [32, 32, 64, 64], op_suffix = [r, i, r, i], op_type = [RegF32, f32imm, RegF64, f64imm], op_node_type = [RegF32, fpimm, RegF64, fpimm] in { def rr#op_suffix#nbit : InstPTX<(outs RegF#nbit:$d), (ins RegF#nbit:$a, RegF#nbit:$b, #op_type:$c), !strconcat(opcstr, ".f#nbit\t$d, $a, $b, $c"),...
2011 Oct 08
3
[LLVMdev] Enhancing TableGen
...hing like this: >> >> class binary_pattern<string opcstr, string type> { >>  string pattern = !strconcat(opcstr, "$r."#type#"\t$d, $a, $b"); >> } >> >> multiclass PTX_FLOAT_3OP<string opcstr> { >>  def rr32 : InstPTX<(outs RegF32:$d), >>                     (ins RndMode:$r, RegF32:$a, RegF32:$b), >>                     binary_pattern<opcstrm "f32">.pattern, []>; >>  def ri32 : InstPTX<(outs RegF32:$d), >>                     (ins RndMode:$r, RegF32:$a, f32imm:$b), >>      ...
2011 Oct 06
0
[LLVMdev] TableGen and Greenspun
Jakob Stoklund Olesen <jolesen at apple.com> writes: > The TableGen language seems to be growing Lisp macros from two > different directions. > > Che-Liang Chiou added a preprocessor with for loops, and David Greene > added multidefs. > > It seems that some kind of macro facility is needed, perhaps we should > discuss what it is supposed to look like? Don't
2011 Oct 06
3
[LLVMdev] TableGen and Greenspun
The TableGen language seems to be growing Lisp macros from two different directions. Che-Liang Chiou added a preprocessor with for loops, and David Greene added multidefs. It seems that some kind of macro facility is needed, perhaps we should discuss what it is supposed to look like? /jakob
2011 May 13
3
[LLVMdev] [ptx] Propose a register class naming convention change
Hi, Current register class naming has a confusing prefix letter 'R' (it is my bad), such as the first 'R' of RRegu32 (for unsigned 32-bit registers). I propose a 'Reg' + type name naming convention for register classes; such as: Regu16, Regu32, Regf32, Regf64 With one exception for predicate registers (capitalized first letter of 'pred'): RegPred Since predicate registers are special in the way that they can't be passed as arguments or load from/store to memory, I think a little name convention exception for it is okay. What do y...
2011 Oct 06
0
[LLVMdev] Enhacing TabelGen
...his: > > (Equivalent TableGen code with a for-loop) > ---------------------------------------- > multiclass PTX_FLOAT_4OP<string opcstr, SDNode opnode1, SDNode opnode2> { > for nbit = [32, 32, 64, 64], > op_suffix = [r, i, r, i], > op_type = [RegF32, f32imm, RegF64, f64imm], > op_node_type = [RegF32, fpimm, RegF64, fpimm] in { > def !strconcat(!strconcat("rr", !cast<string>(op_suffix)), "nbit") > [...] > } > } > > Yes, it's a bit more verbose but also more flexible in what yo...
2011 May 13
0
[LLVMdev] [ptx] Propose a register class naming convention change
...t; > Current register class naming has a confusing prefix letter 'R' (it is > my bad), such as the first 'R' of RRegu32 (for unsigned 32-bit > registers). > > I propose a 'Reg' + type name naming convention for register classes; such as: > Regu16, Regu32, Regf32, Regf64 > With one exception for predicate registers (capitalized first letter of 'pred'): > RegPred > > Since predicate registers are special in the way that they can't be > passed as arguments or load from/store to memory, I think a little > name convention excepti...
2011 May 13
2
[LLVMdev] [ptx] Propose a register class naming convention change
...ss naming has a confusing prefix letter 'R' (it is >> my bad), such as the first 'R' of RRegu32 (for unsigned 32-bit >> registers). >> >> I propose a 'Reg' + type name naming convention for register classes; such >> as: >> Regu16, Regu32, Regf32, Regf64 >> With one exception for predicate registers (capitalized first letter of >> 'pred'): >> RegPred >> >> Since predicate registers are special in the way that they can't be >> passed as arguments or load from/store to memory, I think a little...
2011 May 13
1
[LLVMdev] [ptx] Propose a register class naming convention change
...g prefix letter 'R' (it is >>> my bad), such as the first 'R' of RRegu32 (for unsigned 32-bit >>> registers). >>> >>> I propose a 'Reg' + type name naming convention for register classes; >>> such as: >>> Regu16, Regu32, Regf32, Regf64 >>> With one exception for predicate registers (capitalized first letter of >>> 'pred'): >>> RegPred >>> >>> Since predicate registers are special in the way that they can't be >>> passed as arguments or load from/store to m...
2011 May 13
0
[LLVMdev] [ptx] Propose a register class naming convention change
...naming has a confusing prefix letter 'R' (it is<br> my bad), such as the first 'R' of RRegu32 (for unsigned 32-bit<br> registers).<br> <br> I propose a 'Reg' + type name naming convention for register classes; such as:<br>  Regu16, Regu32, Regf32, Regf64<br> With one exception for predicate registers (capitalized first letter of 'pred'):<br>  RegPred<br> <br> Since predicate registers are special in the way that they can't be<br> passed as arguments or load from/store to memory, I think a litt...
2011 Oct 06
0
[LLVMdev] MIPS 32bit code generation
...to be too limiting. In this example: (Equivalent TableGen code with a for-loop) ---------------------------------------- multiclass PTX_FLOAT_4OP<string opcstr, SDNode opnode1, SDNode opnode2> { for nbit = [32, 32, 64, 64], op_suffix = [r, i, r, i], op_type = [RegF32, f32imm, RegF64, f64imm], op_node_type = [RegF32, fpimm, RegF64, fpimm] in { def rr#op_suffix#nbit : InstPTX<(outs RegF#nbit:$d), (ins RegF#nbit:$a, RegF#nbit:$b, #op_type:$c), !strconcat(opcstr, ".f#nbit\t$d, $a, $b, $c"),...