search for: type_s64

Displaying 6 results from an estimated 6 matches for "type_s64".

Did you mean: type_f64
2016 Sep 27
2
[PATCH] nv50/ir: constant fold OP_SPLIT
...,29 @@ ConstantFolding::opnd(Instruction *i, ImmediateValue &imm0, int s) Instruction *newi = i; switch (i->op) { + case OP_SPLIT: { + uint16_t shift = 0; + DataType type = TYPE_NONE; + bld.setPosition(i, false); + if (i->sType == TYPE_U64 || i->sType == TYPE_S64) { + shift = 32; + type = (i->sType == TYPE_U64) ? TYPE_U32 : TYPE_S32; + } + if (i->sType == TYPE_U32 || i->sType == TYPE_S32) { + shift = 16; + type = (i->sType == TYPE_U32) ? TYPE_U16 : TYPE_S16; + } + if (i->sType == TYPE_U16 ||...
2016 Sep 30
2
[PATCH] nv50/ir: constant fold OP_SPLIT
...nt s) >> Instruction *newi = i; >> >> switch (i->op) { >> + case OP_SPLIT: { >> + uint16_t shift = 0; >> + DataType type = TYPE_NONE; >> + bld.setPosition(i, false); >> + if (i->sType == TYPE_U64 || i->sType == TYPE_S64) { >> + shift = 32; >> + type = (i->sType == TYPE_U64) ? TYPE_U32 : TYPE_S32; >> + } >> + if (i->sType == TYPE_U32 || i->sType == TYPE_S32) { >> + shift = 16; >> + type = (i->sType == TYPE_U32) ? TYPE_U16 : TY...
2014 May 18
1
[PATCH 1/2] nv50/ir: fix s32 x s32 -> high s32 multiply logic
...xpandIntegerMUL(BuildUtil *bld, Instruction *mul) { const bool highResult = mul->subOp == NV50_IR_SUBOP_MUL_HIGH; - DataType fTy = mul->sType; // full type - DataType hTy; + DataType fTy; // full type + switch (mul->sType) { + case TYPE_S32: fTy = TYPE_U32; break; + case TYPE_S64: fTy = TYPE_U64; break; + default: fTy = mul->sType; break; + } + + DataType hTy; // half type switch (fTy) { - case TYPE_S32: hTy = TYPE_S16; break; case TYPE_U32: hTy = TYPE_U16; break; case TYPE_U64: hTy = TYPE_U32; break; - case TYPE_S64: hTy = TYPE_S32; break; defa...
2016 Sep 28
0
[PATCH] nv50/ir: constant fold OP_SPLIT
...on *i, ImmediateValue &imm0, int s) > Instruction *newi = i; > > switch (i->op) { > + case OP_SPLIT: { > + uint16_t shift = 0; > + DataType type = TYPE_NONE; > + bld.setPosition(i, false); > + if (i->sType == TYPE_U64 || i->sType == TYPE_S64) { > + shift = 32; > + type = (i->sType == TYPE_U64) ? TYPE_U32 : TYPE_S32; > + } > + if (i->sType == TYPE_U32 || i->sType == TYPE_S32) { > + shift = 16; > + type = (i->sType == TYPE_U32) ? TYPE_U16 : TYPE_S16; > + } &g...
2016 Sep 30
0
[PATCH] nv50/ir: constant fold OP_SPLIT
...ion *newi = i; >>> >>> switch (i->op) { >>> + case OP_SPLIT: { >>> + uint16_t shift = 0; >>> + DataType type = TYPE_NONE; >>> + bld.setPosition(i, false); >>> + if (i->sType == TYPE_U64 || i->sType == TYPE_S64) { >>> + shift = 32; >>> + type = (i->sType == TYPE_U64) ? TYPE_U32 : TYPE_S32; >>> + } >>> + if (i->sType == TYPE_U32 || i->sType == TYPE_S32) { >>> + shift = 16; >>> + type = (i->sType == T...
2015 Nov 05
7
[PATCH mesa 0/5] nouveau: codegen: Make use of double immediates
Hi All, This series implements using double immediates in the nouveau codegen code. This turns the following (nvc0) code: 1: mov u32 $r2 0x00000000 (8) 2: mov u32 $r3 0x3fe00000 (8) 3: add f64 $r0d $r0d $r2d (8) Into: 1: add f64 $r0d $r0d 0.500000 (8) This has been tested with the 2 double shader tests which I just send to the piglet list. On a gk208 (gk110 / SM35)