1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 04:02:41 +01:00

[RISCV] Use bitfields to shrink the size of the vector load/store intrinsics to pseudo instruction lookup tables.

This commit is contained in:
Craig Topper 2021-06-07 16:35:27 -07:00
parent 099da8e88d
commit 89d484d4dd

View File

@ -94,67 +94,67 @@ private:
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;
};