https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119556
Bug ID: 119556 Summary: gcc.target/arm/short-vfp-1.c fails Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: clyon at gcc dot gnu.org Target Milestone: --- Target: arm g:78e0cf06c818e6293d36e52ad7a96bd9e7953c06 enabled gcc.target/arm/short-vfp-1.c but all the scan-assembler directives fail. In fact, it has (would have) always been the case: I rebuilt the compiler from g:50df9464b86a58d5c959b10c33c1870c0c4c5e48 (r7-3249-g50df9464b86) and after fixing the dg directives, the test was also failing. (the same applies after patch 17/17 r7-3273-gcab9e1df4d3). At that point, the generated code looked like: test_sisf: @ Function supports interworking. @ args = 0, pretend = 0, frame = 8 @ frame_needed = 1, uses_anonymous_args = 0 push {fp, lr} add fp, sp, #4 sub sp, sp, #8 str r0, [fp, #-8] @ float ldr r0, [fp, #-8] @ float bl __aeabi_f2iz mov r3, r0 mov r0, r3 sub sp, fp, #4 @ sp needed pop {fp, lr} bx lr Or, with -O2: test_sisf: @ Function supports interworking. @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 push {r4, lr} bl __aeabi_f2iz pop {r4, lr} bx lr So there's no chance any of the scan-assembler-times directives could pass... With today's trunk at -O2, we get: test_sisf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. vcvt.s32.f32 s15, s0 vmov r0, s15 @ int bx lr .size test_sisf, .-test_sisf .align 1 .p2align 2,,3 .global test_hisf .syntax unified .thumb .thumb_func .type test_hisf, %function test_hisf: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. vcvt.s32.f32 s0, s0 vmov r3, s0 @ int sxth r0, r3 bx lr .size test_hisf, .-test_hisf .align 1 .p2align 2,,3 .global test_sfsi .syntax unified .thumb .thumb_func .type test_sfsi, %function test_sfsi: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. vmov s0, r0 @ int vcvt.f32.s32 s0, s0 bx lr .size test_sfsi, .-test_sfsi .align 1 .p2align 2,,3 .global test_sfhi .syntax unified .thumb .thumb_func .type test_sfhi, %function test_sfhi: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. vmov s0, r0 @ int vcvt.f32.s32 s0, s0 bx lr .size test_sfhi, .-test_sfhi .align 1 .p2align 2,,3 .global test_hisi .syntax unified .thumb .thumb_func .type test_hisi, %function test_hisi: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. sxth r0, r0 bx lr .size test_hisi, .-test_hisi .align 1 .p2align 2,,3 .global test_sihi .syntax unified .thumb .thumb_func .type test_sihi, %function test_sihi: @ args = 0, pretend = 0, frame = 0 @ frame_needed = 0, uses_anonymous_args = 0 @ link register save eliminated. bx lr which looks good