On 2021-03-23 5:33 p.m., Richard Sandiford wrote:
Vladimir Makarov <vmaka...@redhat.com> writes:
On 2021-03-23 2:24 p.m., Vladimir Makarov wrote:

Here is the patch solving the problem.

Also although asm tests only checks assembler code, a lot of them use
dg-require-effective-target and therefore can not be tested on other
aarch64 machines.  So the patch removes them.
I think they're still needed.  The harness tries to use assemble
rather than compile tests by default, so that the assembler picks
up any invalid instructions.  However, we can't assume that everyone
has a version of binutils that supports SVE and .variant_pcs, so the
tests fall back to compile tests unless:

if { [check_effective_target_aarch64_asm_sve_ok]
      && [check_effective_target_aarch64_variant_pcs] } {

is true.

However, the same problem then occurs for features that were added
by later architecture revisions, such as the ones being tested here.
Not everyone will have an assembler that understands these newer
instructions.

So the dg-require-effective-target are needed for the case in which
the system assembler is recent enough to support SVE but is not
recent enough to support these other extensions.

In other words, it wasn't your fault that these regressions didn't
show up.  But the fact that they didn't show up is kind-of deliberate,
since the testing provided by the assembler is a really useful sanity
check in this context.

The constraints.md patch is OK though.  Thanks for the quick fix.

Thanks for the explanation, Richard.

I think it would be nice to have a check for binutils instead of effective target.  Otherwise, the same situation can be repeated in the future.  Although I don't know how to implement this in dejagnu.

In any case, I've committed the patch with changes only in constraints.md.


Reply via email to