search for: gprf32

Displaying 20 results from an estimated 21 matches for "gprf32".

Did you mean: gpr32
2008 Oct 24
2
[LLVMdev] SetCC tablegen pattern
I am attempting to match setcc using tablegen w/ the following patterns: def FEQ : Instruction<(outs GPRF32:$dst), (ins GPRF32:$src0, GPRF32:$src1), "eq $dst, $src0, $src1", [(set GPRF32:$dst, (seteq GPRF32:$src0, GPRF32:$src1))]>; And it is failing stating that the result must be an integer. Is there a way around this other than modifying TargetSelectionDAG.td? Also, why is it assumed t...
2009 Apr 15
2
[LLVMdev] Error w/ Tablegen + Intrinsics
It seems that Tablegen is generating intrinsic ID's off by in DAGISel.inc In DAGISel.inc, I have the following pattern: int64_t CN1 = Tmp0->getZExtValue(); // Pattern: (intrinsic_w_chain:f32 103:iPTR, GPRF32:f32:$src0, GPRF32:f32:$src1, GPRF32:f32:$src2) // Emits: (MACRO_FMA_f32:f32 GPRF32:f32:$src0, GPRF32:f32:$src1, GPRF32:f32:$src2) // Pattern complexity = 8 cost = 1 size = 0 if (CN1 == INT64_C(103)) { SDValue N2 = N.getOperand(2); SDValue N3 = N.getOperand(3);...
2008 Oct 25
0
[LLVMdev] SetCC tablegen pattern
...custom lower these nodes to target nodes. Then you can specify your own SDNode with your own SDTypeProfile. Evan On Oct 24, 2008, at 4:31 PM, Villmow, Micah wrote: > I am attempting to match setcc using tablegen w/ the following > patterns: > def FEQ : Instruction<(outs GPRF32:$dst), (ins GPRF32:$src0, > GPRF32:$src1), “eq $dst, $src0, $src1”, [(set GPRF32:$dst, (seteq > GPRF32:$src0, GPRF32:$src1))]>; > > And it is failing stating that the result must be an integer. Is > there a way around this other than modifying TargetSelectionDAG.td? > A...
2009 Apr 15
0
[LLVMdev] Error w/ Tablegen + Intrinsics
...On Apr 14, 2009, at 6:34 PM, Villmow, Micah wrote: > It seems that Tablegen is generating intrinsic ID’s off by in > DAGISel.inc > > In DAGISel.inc, I have the following pattern: > int64_t CN1 = Tmp0->getZExtValue(); > > // Pattern: (intrinsic_w_chain:f32 103:iPTR, GPRF32:f32:$src0, > GPRF32:f32:$src1, GPRF32:f32:$src2) > // Emits: (MACRO_FMA_f32:f32 GPRF32:f32:$src0, GPRF32:f32:$src1, > GPRF32:f32:$src2) > // Pattern complexity = 8 cost = 1 size = 0 > if (CN1 == INT64_C(103)) { > SDValue N2 = N.getOperand(2); > SDV...
2011 Nov 22
2
[LLVMdev] PTX builtin functions.
...]>; This allows us to write a multi-def for int_AMDIL_mad like so: defm MAD : TernaryIntrinsicFloat<IL_OP_MAD, int_AMDIL_mad>; Where TernaryIntrinsicFloat is defined as: multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> { def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), [(set GPRF32:$dst, (intr GPRF32:$src, GPRF32:$src2, GPRF32:$src3))]>; def _v2f32 : ThreeInOneOut<opcode, (outs GPRV2F32:$dst), (ins GPRV2F3...
2011 Nov 23
2
[LLVMdev] PTX builtin functions.
...mad like so: > > defm MAD : TernaryIntrinsicFloat<IL_OP_MAD, int_AMDIL_mad>; > > > > Where TernaryIntrinsicFloat is defined as: > > multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> > > { > > def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), > > (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), > > !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), > > [(set GPRF32:$dst, > > (intr GPRF32:$src, GPRF32:$src2, GPRF32:$src3))]>; > > def _v2f32 : ThreeInOneOut<opc...
2011 Nov 23
0
[LLVMdev] PTX builtin functions.
...ite a multi-def for int_AMDIL_mad like so: > defm MAD  : TernaryIntrinsicFloat<IL_OP_MAD, int_AMDIL_mad>; > > Where TernaryIntrinsicFloat is defined as: > multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> > { >  def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), >      (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), >      !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), >      [(set GPRF32:$dst, >          (intr GPRF32:$src, GPRF32:$src2, GPRF32:$src3))]>; >  def _v2f32 : ThreeInOneOut<opcode, (outs GPRV2F32:$dst)...
2011 Nov 23
0
[LLVMdev] PTX builtin functions.
...fm MAD : TernaryIntrinsicFloat<IL_OP_MAD, int_AMDIL_mad>; > > > > > > Where TernaryIntrinsicFloat is defined as: > > > multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> > > > { > > > def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), > > > (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), > > > !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), > > > [(set GPRF32:$dst, > > > (intr GPRF32:$src, GPRF32:$src2, GPRF32:$src3))]>; > > > def _v2f...
2011 Dec 04
2
[LLVMdev] PTX builtin functions.
...rinsicFloat<IL_OP_MAD, int_AMDIL_mad>; >> > > >> > > Where TernaryIntrinsicFloat is defined as: >> > > multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> >> > > { >> > >  def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), >> > >      (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), >> > >      !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), >> > >      [(set GPRF32:$dst, >> > >          (intr GPRF32:$src, GPRF32:$src2, GPRF32:$src3))]>; >>...
2011 Dec 08
3
[LLVMdev] PTX builtin functions.
...rinsicFloat<IL_OP_MAD, int_AMDIL_mad>; >> > > >> > > Where TernaryIntrinsicFloat is defined as: >> > > multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> >> > > { >> > > def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), >> > > (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), >> > > !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), >> > > [(set GPRF32:$dst, >> > > (intr GPRF32:$src, GPRF32:$src2, GPRF32:$src3))]>; >>...
2011 Dec 05
0
[LLVMdev] PTX builtin functions.
...int_AMDIL_mad>; > >> > > > >> > > Where TernaryIntrinsicFloat is defined as: > >> > > multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> > >> > > { > >> > > def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), > >> > > (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), > >> > > !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), > >> > > [(set GPRF32:$dst, > >> > > (intr GPRF32:$src, GPRF32:$src2, GPRF32:$s...
2011 Dec 08
0
[LLVMdev] PTX builtin functions.
...int_AMDIL_mad>; > >> > > > >> > > Where TernaryIntrinsicFloat is defined as: > >> > > multiclass TernaryIntrinsicFloat<ILOpCode opcode, Intrinsic intr> > >> > > { > >> > > def _f32 : ThreeInOneOut<opcode, (outs GPRF32:$dst), > >> > > (ins GPRF32:$src, GPRF32:$src2, GPRF32:$src3), > >> > > !strconcat(opcode.Text, " $dst, $src, $src2, $src3"), > >> > > [(set GPRF32:$dst, > >> > > (intr GPRF32:$src, GPRF32:$src2, GPRF32:$s...
2011 Nov 22
0
[LLVMdev] PTX builtin functions.
On Mon, Nov 21, 2011 at 5:31 PM, Justin Holewinski <justin.holewinski at gmail.com> wrote: > On Mon, Nov 21, 2011 at 11:45 AM, Alberto Magni <alberto.magni86 at gmail.com> > wrote: >> >> On Mon, Nov 21, 2011 at 3:36 PM, Justin Holewinski >> <justin.holewinski at gmail.com> wrote: >> > On Mon, Nov 21, 2011 at 7:01 AM, Alberto Magni >> >
2009 Apr 15
2
[LLVMdev] Tablegen question
...nt_opencl_math_fdistance_fast : Intrinsic<[llvm_float_ty], > [llvm_anyfloat_ty, LLVMMatchType<0>]>; > > The problem comes when I try to use the intrinsic. It gives me the > following error: > GPRV2F32:f32:$src1 MACRO_DISTANCE_FAST_v2f32: (set GPRF32:f32:$dst, > (intrinsic_w_chain:f32 84:iPTR, GPRV2F32:v2f32:$src0, > GPRV2F32:f32:$src1)) > TableGen.exe: In MACRO_DISTANCE_FAST_v2f32: Type inference > contradiction > found in node! Your "$src1" is f32 instead of v2f32. I've run into some problems like this befor...
2009 Apr 15
0
[LLVMdev] Tablegen question
If I force it to use v2f32 for my register class, it still fails with: d:\hq\main\sw\appeng\tools\hpc\opencl\compiler\llvm\test\AMDIL>TableGen. exe -gen -dag-isel -I../../include/ test.td > output GPRV2F32:v2f32:$src1 MACRO_DISTANCE_FAST_v2f32: (set GPRF32:f32:$dst, (i ntrinsic_w_chain:f32 84:iPTR, GPRV2F32:v2f32:$src0, GPRV2F32:v2f32:$src1)) TableGen.exe: In MACRO_DISTANCE_FAST_v2f32: Type inference contradiction found i n node! So I'm not sure that is the problem. Also, my register classes only accept one register type, so there is no valid wa...
2011 Nov 21
2
[LLVMdev] PTX builtin functions.
On Mon, Nov 21, 2011 at 11:45 AM, Alberto Magni <alberto.magni86 at gmail.com>wrote: > On Mon, Nov 21, 2011 at 3:36 PM, Justin Holewinski > <justin.holewinski at gmail.com> wrote: > > On Mon, Nov 21, 2011 at 7:01 AM, Alberto Magni < > alberto.magni86 at gmail.com> > > wrote: > >> > >> Hi Justin, > >> > >> attached you find
2009 Apr 15
0
[LLVMdev] Tablegen question
...insic definition: def int_opencl_math_fdistance_fast : Intrinsic<[llvm_float_ty], [llvm_anyfloat_ty, LLVMMatchType<0>]>; The problem comes when I try to use the intrinsic. It gives me the following error: GPRV2F32:f32:$src1 MACRO_DISTANCE_FAST_v2f32: (set GPRF32:f32:$dst, (intrinsic_w_chain:f32 84:iPTR, GPRV2F32:v2f32:$src0, GPRV2F32:f32:$src1)) TableGen.exe: In MACRO_DISTANCE_FAST_v2f32: Type inference contradiction found in node! I'm using the following test td file. This is generated with putting it in include and running the command Tablegen.exe...
2009 Apr 15
1
[LLVMdev] Tablegen question
...gt; If I force it to use v2f32 for my register class, it still fails with: > d:\hq\main\sw\appeng\tools\hpc\opencl\compiler\llvm\test > \AMDIL>TableGen. > exe -gen > -dag-isel -I../../include/ test.td > output > GPRV2F32:v2f32:$src1 MACRO_DISTANCE_FAST_v2f32: (set > GPRF32:f32:$dst, (i > ntrinsic_w_chain:f32 84:iPTR, GPRV2F32:v2f32:$src0, > GPRV2F32:v2f32:$src1)) > TableGen.exe: In MACRO_DISTANCE_FAST_v2f32: Type inference > contradiction > found i > n node! > > So I'm not sure that is the problem. Also, my register classes only > acc...
2009 Apr 15
1
[LLVMdev] Tablegen question
...nt_opencl_math_fdistance_fast   : Intrinsic<[llvm_float_ty], >                           [llvm_anyfloat_ty, LLVMMatchType<0>]>; > > The problem comes when I try to use the intrinsic. It gives me the > following error: > GPRV2F32:f32:$src1 MACRO_DISTANCE_FAST_v2f32:   (set GPRF32:f32:$dst, > (intrinsic_w_chain:f32 84:iPTR, GPRV2F32:v2f32:$src0, > GPRV2F32:f32:$src1)) > TableGen.exe: In MACRO_DISTANCE_FAST_v2f32: Type inference contradiction > found in node! > > I'm using the following test td file. > > This is generated with putting it in include...
2009 Apr 15
3
[LLVMdev] Tablegen question
Oops. That was premature. I think your original question was on the right track. TableGen distinguishes between known and "overloaded" types (like "llvm_anyfloat_ty" in your example). The overloaded types are numbered separately, and the argument to LLVMMatchType is an index into these overloaded types, ignoring the known types. So, in your case, the first