[AArch64] Modeling NZCV read/write for MOPS instructions
authortyb0807 <sontuan.vu@arm.com>
Tue, 18 Jan 2022 19:24:11 +0000 (19:24 +0000)
committertyb0807 <sontuan.vu@arm.com>
Mon, 31 Jan 2022 20:50:16 +0000 (20:50 +0000)
commit13660715e677919d9a89dc6a3a77532593c3c7f6
tree8e9d0d998c9bd607f77be858356138e30b8bfb5c
parent51e188d079f6ee9d8bc640351f2f772234d809dd
[AArch64] Modeling NZCV read/write for MOPS instructions

According to the specification, MOPS instructions define/use NZCV flags as
part of their semantics (see discussion in
https://reviews.llvm.org/D116157).

More specifically, the specification of the MOPS extension states that
each memcpy/memset/memmov operation will be performed by a series
of three MOPS instructions P, M and E. The P instruction writes to the
NZCV flags, while the others (M and E) reads from the NZCV flags.

This is part 2/4 of a series of patches split from
https://reviews.llvm.org/D117405 to facilitate reviewing.

Differential Revision: https://reviews.llvm.org/D117757
llvm/lib/Target/AArch64/AArch64InstrInfo.td