diff options
author | Zack Rusin <[email protected]> | 2007-10-17 13:27:25 -0400 |
---|---|---|
committer | Zack Rusin <[email protected]> | 2007-10-24 11:21:04 -0400 |
commit | e20294be114c2593035afaf6fe0726e0ce628ed0 (patch) | |
tree | a5d1fff22f0d220d446cd878f09e23e9af82f8a3 /src/mesa/pipe/llvm/instructions.h | |
parent | fcbde5e9f44ee7254b6618b6fe2be98a1c803ed2 (diff) |
Implement pow/rcp and sub opcodes
Diffstat (limited to 'src/mesa/pipe/llvm/instructions.h')
-rw-r--r-- | src/mesa/pipe/llvm/instructions.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/mesa/pipe/llvm/instructions.h b/src/mesa/pipe/llvm/instructions.h index c6e77710ea0..18b5f91131e 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 |