diff options
author | Zack Rusin <zack@tungstengraphics.com> | 2008-02-12 05:35:51 -0500 |
---|---|---|
committer | Zack Rusin <zack@tungstengraphics.com> | 2008-02-12 23:11:05 -0500 |
commit | cad7bc74d69ee053452aa4bd20740dc79ad6eab6 (patch) | |
tree | db9e47a4c2e904d55e42915764d8bbd70166e868 /src/mesa/pipe/llvm/storagesoa.h | |
parent | e20e89e48287808068086ec148920dd89495d813 (diff) |
llvm ir code to fetch the elements
Diffstat (limited to 'src/mesa/pipe/llvm/storagesoa.h')
-rw-r--r-- | src/mesa/pipe/llvm/storagesoa.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mesa/pipe/llvm/storagesoa.h b/src/mesa/pipe/llvm/storagesoa.h index 551b0b9734..9d5609f539 100644 --- a/src/mesa/pipe/llvm/storagesoa.h +++ b/src/mesa/pipe/llvm/storagesoa.h @@ -29,6 +29,7 @@ #define STORAGESOA_H #include <vector> +#include <map> namespace llvm { class BasicBlock; @@ -65,7 +66,23 @@ public: int mask); void storeAddress(int idx, const std::vector<llvm::Value*> &val, int mask); +private: + llvm::Value *elementPointer(llvm::Value *ptr, int index, + int channel) const; + llvm::Value *element(llvm::Value *ptr, int index, + int channel) const; + const char *name(const char *prefix) const; + llvm::ConstantInt *constantInt(int) const; +private: + llvm::BasicBlock *m_block; + llvm::Value *m_input; + llvm::Value *m_output; + llvm::Value *m_consts; + + mutable std::map<int, llvm::ConstantInt*> m_constInts; + mutable char m_name[32]; + mutable int m_idx; }; #endif |