Implement ex2 opcode

This commit is contained in:
Zack Rusin 2007-10-18 05:51:01 -04:00
parent bd38f4d921
commit 1c955171c8
3 changed files with 13 additions and 1 deletions

View file

@ -302,3 +302,12 @@ llvm::Value * Instructions::dst(llvm::Value *in1, llvm::Value *in2)
ry, z, w);
}
llvm::Value * Instructions::ex2(llvm::Value *in)
{
llvm::Value *val = callPow(ConstantFP::get(Type::FloatTy, APFloat(2.f)),
new ExtractElementInst(in, unsigned(0),
name("x1"),
m_block));
return vectorFromVals(val, val, val, val);
}

View file

@ -19,6 +19,7 @@ public:
llvm::Value *dp4(llvm::Value *in1, llvm::Value *in2);
llvm::Value *dph(llvm::Value *in1, llvm::Value *in2);
llvm::Value *dst(llvm::Value *in1, llvm::Value *in2);
llvm::Value *ex2(llvm::Value *in1);
llvm::Value *lit(llvm::Value *in1);
llvm::Value *madd(llvm::Value *in1, llvm::Value *in2,
llvm::Value *in2);

View file

@ -249,7 +249,9 @@ translate_instruction(llvm::Module *module,
break;
case TGSI_OPCODE_ROUND:
break;
case TGSI_OPCODE_EXPBASE2:
case TGSI_OPCODE_EXPBASE2: {
out = instr->ex2(inputs[0]);
}
break;
case TGSI_OPCODE_LOGBASE2:
break;