summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/ARM/fnmscs.ll
Commit message (Collapse)AuthorAgeFilesLines
* [ARM] Add missing selection patterns for vnmlaSimon Pilgrim2017-09-221-2/+67
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For the following function: double fn1(double d0, double d1, double d2) { double a = -d0 - d1 * d2; return a; } on ARM, LLVM generates code along the lines of vneg.f64 d0, d0 vmls.f64 d0, d1, d2 i.e., a negate and a multiply-subtract. The attached patch adds instruction selection patterns to allow it to generate the single instruction vnmla.f64 d0, d1, d2 (multiply-add with negation) instead, like GCC does. Committed on behalf of @gergo- (Gergö Barany) Differential Revision: https://reviews.llvm.org/D35911 llvm-svn: 313972
* ARM: fixup more tests to specify the target more explicitlySaleem Abdulrasool2014-04-031-6/+17
| | | | | | | | | | | | | This changes the tests that were targeting ARM EABI to explicitly specify the environment rather than relying on the default. This breaks with the new Windows on ARM support when running the tests on Windows where the default environment is no longer EABI. Take the opportunity to avoid a pointless redirect (helps when trying to debug with providing a command line invocation which can be copy and pasted) and removing a few greps in favour of FileCheck. llvm-svn: 205541
* Mass update to CodeGen tests to use CHECK-LABEL for labels corresponding to ↵Stephen Lin2013-07-141-16/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | function definitions for more informative error messages. No functionality change and all updated tests passed locally. This update was done with the following bash script: find test/CodeGen -name "*.ll" | \ while read NAME; do echo "$NAME" if ! grep -q "^; *RUN: *llc.*debug" $NAME; then TEMP=`mktemp -t temp` cp $NAME $TEMP sed -n "s/^define [^@]*@\([A-Za-z0-9_]*\)(.*$/\1/p" < $NAME | \ while read FUNC; do sed -i '' "s/;\(.*\)\([A-Za-z0-9_-]*\):\( *\)$FUNC: *\$/;\1\2-LABEL:\3$FUNC:/g" $TEMP done sed -i '' "s/;\(.*\)-LABEL-LABEL:/;\1-LABEL:/" $TEMP sed -i '' "s/;\(.*\)-NEXT-LABEL:/;\1-NEXT:/" $TEMP sed -i '' "s/;\(.*\)-NOT-LABEL:/;\1-NOT:/" $TEMP sed -i '' "s/;\(.*\)-DAG-LABEL:/;\1-DAG:/" $TEMP mv $TEMP $NAME fi done llvm-svn: 186280
* Fix Darwin NEON FP and increase coverageRenato Golin2013-03-211-3/+4
| | | | llvm-svn: 177664
* Avoid NEON SP-FP unless unsafe-math or DarwinRenato Golin2013-03-211-2/+19
| | | | | | | | | | NEON is not IEEE 754 compliant, so we should avoid lowering single-precision floating point operations with NEON unless unsafe-math is turned on. The equivalent VFP instructions are IEEE 754 compliant, but in some cores they're much slower, so some archs/OSs might still request it to be on by default, such as Swift and Darwin. llvm-svn: 177651
* Remove some register allocation order dependencies.Jakob Stoklund Olesen2013-01-191-4/+4
| | | | llvm-svn: 172874
* Make the test less likely to fail with minor changes.Evan Cheng2011-05-031-1/+1
| | | | llvm-svn: 130778
* Fix ARM tests to be register allocator independent.Jakob Stoklund Olesen2011-03-311-8/+9
| | | | llvm-svn: 128680
* Convert -enable-sched-cycles and -enable-sched-hazard to -disableAndrew Trick2011-01-211-4/+4
| | | | | | | | | | | flags. They are still not enable in this revision. Added TargetInstrInfo::isZeroCost() to fix a fundamental problem with the scheduler's model of operand latency in the selection DAG. Generalized unit tests to work with sched-cycles. llvm-svn: 123969
* Add some missing isel predicates on def : pat patterns to avoid generating ↵Evan Cheng2010-11-121-8/+56
| | | | | | VFP vmla / vmls (they cause stalls). Disabling them in isel is properly not a right solution, I'll look into a proper solution next. llvm-svn: 118922
* Change ARM scheduling default to list-hybrid if the target supports floating ↵Evan Cheng2010-05-211-2/+2
| | | | | | point instructions (and is not using soft float). llvm-svn: 104307
* switch the flag for using NEON for SP floating point to a subtarget 'feature'.Jim Grosbach2010-03-251-2/+1
| | | | | | Re-commit. This time complete with testsuite updates. llvm-svn: 99570
* Use Unified Assembly Syntax for the ARM backend.Jim Grosbach2009-11-091-2/+2
| | | | llvm-svn: 86494
* Remove neonfp attribute and instead set default based on CPU string. Add ↵David Goodwin2009-10-011-2/+2
| | | | | | -arm-use-neon-fp to override the default. llvm-svn: 83218
* Eliminate more uses of llvm-as and llvm-dis.Dan Gohman2009-09-091-5/+5
| | | | llvm-svn: 81293
* Use FileCheck... its good for you...David Goodwin2009-08-101-5/+7
| | | | llvm-svn: 78613
* Fix test.David Goodwin2009-08-101-2/+1
| | | | llvm-svn: 78606
* Add nounwind keywords.Dan Gohman2009-08-101-2/+2
| | | | llvm-svn: 78568
* Make NEON single-precision FP support the default for cortex-a8 (again).David Goodwin2009-08-071-0/+2
| | | | llvm-svn: 78430
* Improve tests.David Goodwin2009-08-041-4/+12
| | | | llvm-svn: 78083
* Initial support for single-precision FP using NEON. Added "neonfp" attribute ↵David Goodwin2009-08-041-0/+13
to enable. Added patterns for some binary FP operations. llvm-svn: 78081
OpenPOWER on IntegriCloud