summaryrefslogtreecommitdiff
path: root/src/mesa/pipe/llvm/instructions.h
diff options
context:
space:
mode:
authorZack Rusin <zack@tungstengraphics.com>2007-10-17 13:27:25 -0400
committerZack Rusin <zack@tungstengraphics.com>2007-10-24 11:21:04 -0400
commite20294be114c2593035afaf6fe0726e0ce628ed0 (patch)
treea5d1fff22f0d220d446cd878f09e23e9af82f8a3 /src/mesa/pipe/llvm/instructions.h
parentfcbde5e9f44ee7254b6618b6fe2be98a1c803ed2 (diff)
Implement pow/rcp and sub opcodes
Diffstat (limited to 'src/mesa/pipe/llvm/instructions.h')
-rw-r--r--src/mesa/pipe/llvm/instructions.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mesa/pipe/llvm/instructions.h b/src/mesa/pipe/llvm/instructions.h
index c6e77710ea..18b5f91131 100644
--- a/src/mesa/pipe/llvm/instructions.h
+++ b/src/mesa/pipe/llvm/instructions.h
@@ -20,12 +20,16 @@ public:
llvm::Value *madd(llvm::Value *in1, llvm::Value *in2,
llvm::Value *in2);
llvm::Value *mul(llvm::Value *in1, llvm::Value *in2);
+ llvm::Value *pow(llvm::Value *in1, llvm::Value *in2);
+ llvm::Value *rcp(llvm::Value *in1);
llvm::Value *rsq(llvm::Value *in1);
+ llvm::Value *sub(llvm::Value *in1, llvm::Value *in2);
private:
const char *name(const char *prefix);
llvm::Value *callFSqrt(llvm::Value *val);
llvm::Value *callFAbs(llvm::Value *val);
+ llvm::Value *callPow(llvm::Value *val1, llvm::Value *val2);
llvm::Value *vectorFromVals(llvm::Value *x, llvm::Value *y,
llvm::Value *z, llvm::Value *w=0);
@@ -34,10 +38,12 @@ private:
char m_name[32];
llvm::BasicBlock *m_block;
int m_idx;
- llvm::Function *m_llvmFSqrt;
- llvm::Function *m_llvmFAbs;
llvm::VectorType *m_floatVecType;
+
+ llvm::Function *m_llvmFSqrt;
+ llvm::Function *m_llvmFAbs;
+ llvm::Function *m_llvmPow;
};
#endif