mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 11:48:06 +02:00
Implement dph opcode
This commit is contained in:
parent
7abe3364b2
commit
3c558e17f0
3 changed files with 31 additions and 1 deletions
|
|
@ -253,3 +253,30 @@ llvm::Value * Instructions::dp4(llvm::Value *in1, llvm::Value *in2)
|
|||
return vectorFromVals(dot4, dot4, dot4, dot4);
|
||||
}
|
||||
|
||||
llvm::Value * Instructions::dph(llvm::Value *in1, llvm::Value *in2)
|
||||
{
|
||||
Value *mulRes = mul(in1, in2);
|
||||
ExtractElementInst *x = new ExtractElementInst(mulRes, unsigned(0),
|
||||
name("extractx"),
|
||||
m_block);
|
||||
ExtractElementInst *y = new ExtractElementInst(mulRes, unsigned(1),
|
||||
name("extracty"),
|
||||
m_block);
|
||||
ExtractElementInst *z = new ExtractElementInst(mulRes, unsigned(2),
|
||||
name("extractz"),
|
||||
m_block);
|
||||
ExtractElementInst *w = new ExtractElementInst(in2, unsigned(3),
|
||||
name("val2w"),
|
||||
m_block);
|
||||
BinaryOperator *xy = BinaryOperator::create(Instruction::Add, x, y,
|
||||
name("xy"),
|
||||
m_block);
|
||||
BinaryOperator *xyz = BinaryOperator::create(Instruction::Add, xy, z,
|
||||
name("xyz"),
|
||||
m_block);
|
||||
BinaryOperator *dph = BinaryOperator::create(Instruction::Add, xyz, w,
|
||||
name("dph"),
|
||||
m_block);
|
||||
return vectorFromVals(dph, dph, dph, dph);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ public:
|
|||
llvm::Value *add(llvm::Value *in1, llvm::Value *in2);
|
||||
llvm::Value *dp3(llvm::Value *in1, llvm::Value *in2);
|
||||
llvm::Value *dp4(llvm::Value *in1, llvm::Value *in2);
|
||||
llvm::Value *dph(llvm::Value *in1, llvm::Value *in2);
|
||||
llvm::Value *lit(llvm::Value *in1);
|
||||
llvm::Value *madd(llvm::Value *in1, llvm::Value *in2,
|
||||
llvm::Value *in2);
|
||||
|
|
|
|||
|
|
@ -263,7 +263,9 @@ translate_instruction(llvm::Module *module,
|
|||
break;
|
||||
case TGSI_OPCODE_RCC:
|
||||
break;
|
||||
case TGSI_OPCODE_DPH:
|
||||
case TGSI_OPCODE_DPH: {
|
||||
out = instr->dph(inputs[0], inputs[1]);
|
||||
}
|
||||
break;
|
||||
case TGSI_OPCODE_COS:
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue