[llvm] 0aa9416 - [RISCV] Use bitfields to shrink the size of the vector load/store intrinsics to pseudo instruction lookup tables.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 7 17:58:06 PDT 2021
Author: Craig Topper
Date: 2021-06-07T17:57:51-07:00
New Revision: 0aa941654fc06d76d4fea57ea1b205f93dce391b
URL: https://github.com/llvm/llvm-project/commit/0aa941654fc06d76d4fea57ea1b205f93dce391b
DIFF: https://github.com/llvm/llvm-project/commit/0aa941654fc06d76d4fea57ea1b205f93dce391b.diff
LOG: [RISCV] Use bitfields to shrink the size of the vector load/store intrinsics to pseudo instruction lookup tables.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
index 70480d14eba5..e8b79b008fa4 100644
--- a/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
+++ b/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.h
@@ -94,67 +94,67 @@ class RISCVDAGToDAGISel : public SelectionDAGISel {
namespace RISCV {
struct VLSEGPseudo {
- uint8_t NF;
- uint8_t Masked;
- uint8_t Strided;
- uint8_t FF;
- uint8_t Log2SEW;
- uint8_t LMUL;
+ uint16_t NF : 4;
+ uint16_t Masked : 1;
+ uint16_t Strided : 1;
+ uint16_t FF : 1;
+ uint16_t Log2SEW : 3;
+ uint16_t LMUL : 3;
uint16_t Pseudo;
};
struct VLXSEGPseudo {
- uint8_t NF;
- uint8_t Masked;
- uint8_t Ordered;
- uint8_t Log2SEW;
- uint8_t LMUL;
- uint8_t IndexLMUL;
+ uint16_t NF : 4;
+ uint16_t Masked : 1;
+ uint16_t Ordered : 1;
+ uint16_t Log2SEW : 3;
+ uint16_t LMUL : 3;
+ uint16_t IndexLMUL : 3;
uint16_t Pseudo;
};
struct VSSEGPseudo {
- uint8_t NF;
- uint8_t Masked;
- uint8_t Strided;
- uint8_t Log2SEW;
- uint8_t LMUL;
+ uint16_t NF : 4;
+ uint16_t Masked : 1;
+ uint16_t Strided : 1;
+ uint16_t Log2SEW : 3;
+ uint16_t LMUL : 3;
uint16_t Pseudo;
};
struct VSXSEGPseudo {
- uint8_t NF;
- uint8_t Masked;
- uint8_t Ordered;
- uint8_t Log2SEW;
- uint8_t LMUL;
- uint8_t IndexLMUL;
+ uint16_t NF : 4;
+ uint16_t Masked : 1;
+ uint16_t Ordered : 1;
+ uint16_t Log2SEW : 3;
+ uint16_t LMUL : 3;
+ uint16_t IndexLMUL : 3;
uint16_t Pseudo;
};
struct VLEPseudo {
- uint8_t Masked;
- uint8_t Strided;
- uint8_t FF;
- uint8_t Log2SEW;
- uint8_t LMUL;
+ uint16_t Masked : 1;
+ uint16_t Strided : 1;
+ uint16_t FF : 1;
+ uint16_t Log2SEW : 3;
+ uint16_t LMUL : 3;
uint16_t Pseudo;
};
struct VSEPseudo {
- uint8_t Masked;
- uint8_t Strided;
- uint8_t Log2SEW;
- uint8_t LMUL;
+ uint16_t Masked :1;
+ uint16_t Strided : 1;
+ uint16_t Log2SEW : 3;
+ uint16_t LMUL : 3;
uint16_t Pseudo;
};
struct VLX_VSXPseudo {
- uint8_t Masked;
- uint8_t Ordered;
- uint8_t Log2SEW;
- uint8_t LMUL;
- uint8_t IndexLMUL;
+ uint16_t Masked : 1;
+ uint16_t Ordered : 1;
+ uint16_t Log2SEW : 3;
+ uint16_t LMUL : 3;
+ uint16_t IndexLMUL : 3;
uint16_t Pseudo;
};
More information about the llvm-commits
mailing list