https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69532

            Bug ID: 69532
           Summary: FAIL: gcc.target/arm/vect-fmaxmin.c execution test on
                    armv7
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: trivial
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vries at gcc dot gnu.org
  Target Milestone: ---

The testcase contains an effective target test:
...
/* { dg-require-effective-target arm_v8_neon_ok } */
...

But that test just checks compilation:
...
# Return 1 if this is an ARM target supporting -mfpu=neon-fp-armv8
# -mfloat-abi=softfp or equivalent options.  Some multilibs may be
# incompatible with these options.  Also set et_arm_v8_neon_flags to the
# best options to add.

proc check_effective_target_arm_v8_neon_ok_nocache { } {
    global et_arm_v8_neon_flags
    set et_arm_v8_neon_flags ""
    if { [check_effective_target_arm32] } {
        foreach flags {"" "-mfloat-abi=softfp" "-mfpu=neon-fp-armv8"
"-mfpu=neon-fp-armv8 -mfloat-abi=softfp"} {
            if { [check_no_compiler_messages_nocache arm_v8_neon_ok object {
                #if __ARM_ARCH < 8
                #error not armv8 or later
                #endif
                #include "arm_neon.h"
                void
                foo ()
                {
                  __asm__ volatile ("vrintn.f32 q0, q0");
                }
            } "$flags -march=armv8-a"] } {
                set et_arm_v8_neon_flags $flags
                return 1
            }
        }
    }

    return 0
}
...

Compiling goes fine, but execution fails:
...
Program received signal SIGILL, Illegal instruction.
0x000085b8 in test_fmaxf (r=r@entry=0xbefff3a0, a=a@entry=0xbefff380,
b=b@entry=0xbefff390)
    at src/gcc/testsuite/gcc.target/arm/fmaxmin.x:22
22      DEF_MAXMIN (float, fmaxf)
(gdb) display/i $pc
1: x/i $pc
=> 0x85b8 <test_fmaxf+8>:       vmaxnm.f32      q8, q8, q9
...

Reply via email to