In instruction selection consistently set idxen=0 when vindex is known
to be 0. This avoids materializing 0 into a register for various kinds
of buffer loads and stores.
Details
- Reviewers
arsenm rampitec sebastian-ne
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
I thought the struct intrinsics were for the idxen case, and needed the 0 materialized
Why would that be required? Are there some instructions that don't work with idxen=0?
I don't remember, but the old intrinsics only had the one offset and we inferred idxen based on the value which didn't work
OK, it seems that bounds checking does different things depending on the idxen bit in the instruction.
clang-tidy: warning: 'auto VIndexC' can be declared as 'auto *VIndexC' [llvm-qualified-auto]
not useful