On Mon, Jan 25, 2016 at 08:09:39PM +0000, Wilco Dijkstra wrote: > Andreas Schwab <[email protected]> wrote: > > > FAIL: gcc.target/aarch64/ccmp_1.c scan-assembler-times \tcmp\tw[0-9]+, 0 4 > > FAIL: gcc.target/aarch64/ccmp_1.c scan-assembler adds\t > > FAIL: gcc.target/aarch64/ccmp_1.c scan-assembler-times fccmpe\t.*0\\.0 1 > > Yes I noticed those too, and here is the fix. Richard's recent change added > UNSPEC to the CCMP patterns to stop combine optimizing the CCMP CCmode > immediate in a rare case. This requires a change to the CCMP cost calculation > as the CCMP instruction with unspec is no longer recognized. > > Fix the ccmp_1.c test to allow both '0' and 'wzr' on cmp - BTW is there a > regular expression that correctly implements (0|xzr)? If I use that the test > still fails somehow but \[0wzr\]+ works fine... Is the correct syntax > documented somewhere? > > Finally to ensure FCCMPE is emitted on relational compares, add > -ffinite-math-only.
OK. Thanks, James > > ChangeLog: > 2016-01-25 Wilco Dijkstra <[email protected]> > > gcc/ > * config/aarch64/aarch64.c (aarch64_if_then_else_costs): > Remove CONST_INT_P check in CCMP cost calculation. > > gcc/testsuite/ > * gcc.target/aarch64/ccmp_1.c: Fix test issues. >
