On Wed, Mar 15, 2017 at 04:04:35PM +0000, Tamar Christina wrote: > Hi All, > > This fixes a bug in the scalar version of copysign where due to a subreg > were generating less than efficient code. > > This patch replaces > > return x * __builtin_copysignf (150.0f, y); > > which used to generate > > adrp x1, .LC1 > mov x0, 2147483648 > ins v3.d[0], x0 > ldr s2, [x1, #:lo12:.LC1] > bsl v3.8b, v1.8b, v2.8b > fmul s0, s0, s3 > ret > > .LC1: > .word 1125515264 > > with > mov x0, 1125515264 > movi v2.2s, 0x80, lsl 24 > fmov d3, x0 > bit v3.8b, v1.8b, v2.8b > fmul s0, s0, s3 > ret > > removing the incorrect ins. > > Regression tested on aarch64-none-linux-gnu and no regressions. > > OK for trunk?
OK. Thanks, James > gcc/ > 2017-03-15 Tamar Christina <tamar.christ...@arm.com> > > * config/aarch64/aarch64.md > (copysignsf3): Fix mask generation.