Skip to content

Some floating point tests fail on arm-linux-(gnu,musl)eabi (soft float) #21234

@alexrp

Description

@alexrp

Zig Version

31fef6f

Steps to Reproduce and Observed Behavior

While working on fixing our soft float support, I discovered a handful of tests that fail on arm-linux-(gnu,musl)eabi (with the full soft ABI):

test-modules
└─ test-behavior
   └─ run test behavior-arm-linux.4.19...6.10.3-musleabi-baseline-Debug-libc 1833/1948 passed, 3 failed, 112 skipped
error: 'behavior.floatop.test.cmp f16' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0x97047 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:212:13: 0x2bd8db in testCmp__anon_48443 (test)
            try expect((lhs > rhs) == (no_nan and lhs_order > rhs_order));
            ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:130:5: 0x2bdaf3 in test.cmp f16 (test)
    try testCmp(f16);
    ^
error: 'behavior.floatop.test.cmp f32/f64' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0x97047 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:212:13: 0x2be5d3 in testCmp__anon_48513 (test)
            try expect((lhs > rhs) == (no_nan and lhs_order > rhs_order));
            ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:138:5: 0x2bf543 in test.cmp f32/f64 (test)
    try testCmp(f32);
    ^
error: 'behavior.math.test.NaN comparison' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0x97047 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/test/behavior/math.zig:1629:5: 0x314e1b in testNanEqNan__anon_54921 (test)
    try expect(!(nan1 > nan2));
    ^
/home/alexrp/Source/zig/test/behavior/math.zig:1601:5: 0x315aeb in test.NaN comparison (test)
    try testNanEqNan(f16);
    ^
error: while executing test 'behavior.usingnamespace.import_segregation.test.no clobbering happened', the following test command failed:
qemu-arm /home/alexrp/Source/zig/.zig-cache/o/b7e64fdef1247f410cec05ddfa4d88c5/test --seed=0xf34ffde3 --cache-dir=/home/alexrp/Source/zig/.zig-cache --listen=-
test-modules
└─ test-behavior
   └─ run test behavior-arm-linux.4.19...6.10.3-gnueabi.2.28-baseline-Debug-libc 1833/1948 passed, 3 failed, 112 skipped
error: 'behavior.floatop.test.cmp f16' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0x8d047 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:212:13: 0x2cdfdf in testCmp__anon_48439 (test)
            try expect((lhs > rhs) == (no_nan and lhs_order > rhs_order));
            ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:130:5: 0x2ce267 in test.cmp f16 (test)
    try testCmp(f16);
    ^
error: 'behavior.floatop.test.cmp f32/f64' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0x8d047 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:212:13: 0x2ced8b in testCmp__anon_48509 (test)
            try expect((lhs > rhs) == (no_nan and lhs_order > rhs_order));
            ^
/home/alexrp/Source/zig/test/behavior/floatop.zig:138:5: 0x2cfe1f in test.cmp f32/f64 (test)
    try testCmp(f32);
    ^
error: 'behavior.math.test.NaN comparison' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0x8d047 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/test/behavior/math.zig:1629:5: 0x32974f in testNanEqNan__anon_54917 (test)
    try expect(!(nan1 > nan2));
    ^
/home/alexrp/Source/zig/test/behavior/math.zig:1601:5: 0x32a52f in test.NaN comparison (test)
    try testNanEqNan(f16);
    ^
error: while executing test 'behavior.usingnamespace.import_segregation.test.no clobbering happened', the following test command failed:
qemu-arm -L /opt/glibc/arm-linux-gnueabi /home/alexrp/Source/zig/.zig-cache/o/1a002c0aa7925ec65f2e00d28fc9bc36/test --seed=0xf34ffde3 --cache-dir=/home/alexrp/Source/zig/.zig-cache --listen=-
test-modules
└─ test-std
   └─ run test std-arm-linux.4.19...6.10.3-musleabi-baseline-Debug-libc 2716/2793 passed, 1 failed, 76 skipped
error: 'math.gamma.test.gamma.special' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0xcc1ff7 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/lib/std/math/gamma.zig:266:9: 0x16bfe1f in test.gamma.special (test)
        try expect(std.math.isNan(gamma(T, -std.math.nan(T))));
        ^
error: while executing test 'zig.system.darwin.macos.test.detect', the following test command failed:
qemu-arm /home/alexrp/Source/zig/.zig-cache/o/1296de7f14df689d056a921f62d78997/test --seed=0xf34ffde3 --cache-dir=/home/alexrp/Source/zig/.zig-cache --listen=-
test-modules
└─ test-std
   └─ run test std-arm-linux.4.19...6.10.3-gnueabi.2.28-baseline-Debug-libc 2716/2793 passed, 1 failed, 76 skipped
error: 'math.gamma.test.gamma.special' failed: /home/alexrp/Source/zig/lib/std/testing.zig:546:14: 0xc7dbc3 in expect (test)
    if (!ok) return error.TestUnexpectedResult;
             ^
/home/alexrp/Source/zig/lib/std/math/gamma.zig:266:9: 0x17307db in test.gamma.special (test)
        try expect(std.math.isNan(gamma(T, -std.math.nan(T))));
        ^
error: while executing test 'zig.system.darwin.macos.test.detect', the following test command failed:
qemu-arm -L /opt/glibc/arm-linux-gnueabi /home/alexrp/Source/zig/.zig-cache/o/1e49820ec7797fa0d5933532abe069b9/test --seed=0xf34ffde3 --cache-dir=/home/alexrp/Source/zig/.zig-cache --listen=-

Expected Behavior

No failures.

Metadata

Metadata

Assignees

No one assigned

    Labels

    abi-sfThe software floating point ABI for various architecturesarch-arm32-bit Armbackend-llvmThe LLVM backend outputs an LLVM IR Module.bugObserved behavior contradicts documented or intended behavior

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions