[Bug c/67242] Missing optimization with float
f.boesing at gmx dot de
gcc-bugzilla@gcc.gnu.org
Sun Aug 16 20:28:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67242
--- Comment #2 from Frank <f.boesing at gmx dot de> ---
x86-64:
.file "bug.c"
.section .text.unlikely,"x"
.LCOLDB0:
.text
.LHOTB0:
.p2align 4,,15
.globl bug
.def bug; .scl 2; .type 32; .endef
.seh_proc bug
bug:
.seh_endprologue
movl $999, dummy(%rip)
xorl %eax, %eax
.p2align 4,,10
.L2:
pxor %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
addl $1, %eax
cmpl $1000, %eax
jne .L2
movss %xmm0, dummyfloat(%rip)
movl $1000, n(%rip)
ret
.seh_endproc
.section .text.unlikely,"x"
.LCOLDE0:
.text
.LHOTE0:
.comm dummyfloat, 4, 2
.comm dummy, 4, 2
.comm n, 4, 2
.ident "GCC: (tdm64-1) 4.9.2"
arm-thumb, soft float:
.cpu arm7tdmi
.fpu softvfp
.eabi_attribute 20, 1
.eabi_attribute 21, 1
.eabi_attribute 23, 3
.eabi_attribute 24, 1
.eabi_attribute 25, 1
.eabi_attribute 26, 1
.eabi_attribute 30, 2
.eabi_attribute 34, 0
.eabi_attribute 18, 4
.code 16
.file "bug.c"
.global __aeabi_i2f
.text
.align 2
.global bug
.code 16
.thumb_func
.type bug, %function
bug:
push {r3, r4, r5, lr}
mov r5, #250
mov r4, #0
ldr r2, .L5
ldr r3, .L5+4
str r2, [r3]
lsl r5, r5, #2
.L2:
mov r0, r4
add r4, r4, #1
bl __aeabi_i2f
cmp r4, r5
bne .L2
ldr r3, .L5+8
str r0, [r3]
ldr r3, .L5+12
@ sp needed
str r4, [r3]
pop {r3, r4, r5}
pop {r0}
bx r0
.L6:
.align 2
.L5:
.word 999
.word dummy
.word dummyfloat
.word n
.size bug, .-bug
.comm dummyfloat,4,4
.comm dummy,4,4
.comm n,4,4
.ident "GCC: (GNU Tools for ARM Embedded Processors) 4.9.3 20150529
(release) [ARM/embedded-4_9-branch revision 224288]"
More information about the Gcc-bugs
mailing list