[PATCH] D62130: [AArch64][SVE2] Asm: add saturating add/sub instructions

Cullen Rhodes via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 22 09:21:17 PDT 2019


c-rhodes added inline comments.


================
Comment at: test/MC/AArch64/SVE2/sqadd.s:12
+// CHECK-INST: sqadd z0.b, p0/m, z0.b, z1.b
+// CHECK-ENCODING: [0x20,0x80,0x18,0x44]
+// CHECK-ERROR: instruction requires: sve2
----------------
chill wrote:
> The encoding does not look right.
> 
> In  https://reviews.llvm.org/D62000 there's this bit:
> 
> ```class sve2_int_arith_pred<bits<2> sz, bits<6> opc, string asm,
>                           ZPRRegOp zprty>
> ...
>   let Inst{21-20} = 0b01;
>   let Inst{20-16} = opc{5-1};
> ...
> ```
> 
> which has overlapping bit 20.
Good spot, bit 20 shouldn't overlap there, that should be:

```
  let Inst{21}    = 0b0;
  let Inst{20-16} = opc{5-1};
```
I believe the encodings are still correct however as bit 20 is defined by the `opc` bits and this overwrites the earlier error of setting bit 20 to 0. I've checked all the encodings for instructions defined by `sve2_int_arith_pred` and compared against other implementations and can't see any issues.

I'll create patch for the above to address the overlapping bit 20. Thanks for spotting this!


Repository:
  rL LLVM

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62130/new/

https://reviews.llvm.org/D62130





More information about the llvm-commits mailing list