[llvm] [LLVM][CodeGen][AArch64] Remove bogus lowering of sve_while{gt/ge/hi/hs} intrinsics. (PR #88126)

Paul Walker via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 12 02:44:55 PDT 2024


paulwalker-arm wrote:

> Sorry, While revisiting this review once again examining the change, I am a bit confused now. If we look at WHILE{GT/GE/HI,HS} instructions, according to the spec it says: ... for e = elements-1 downto 0 ... Looks like, it should not be a problem for traversing from high->low lanes?

The fact the WHILE{GT/GE/HI,HS} instructions traverse from high->low lanes is what makes the replacement with PTRUE incorrect.  For example:
```
whilege(2,0) -> 0 0 0 0 0 1 1 1
```
whereas:
```
ptrue vl3    -> 1 1 1 0 0 0 0 0
```

https://github.com/llvm/llvm-project/pull/88126


More information about the llvm-commits mailing list