| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This allows us to mark this as `REQUIRES: x86`, since it uses x86
target specific intrinsics.
llvm-svn: 302980
|
| |
|
|
|
|
| |
Differential Revision: https://reviews.llvm.org/D28110
llvm-svn: 290542
|
| |
|
|
|
|
|
|
|
| |
Just because we can constant fold the result of an instruction does not
imply that we can delete the instruction. It may have side effects.
This fixes PR28655.
llvm-svn: 276389
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generic IR
D20859 and D20860 attempted to replace the SSE (V)CVTTPS2DQ and VCVTTPD2DQ truncating conversions with generic IR instead.
It turns out that the behaviour of these intrinsics is different enough from generic IR that this will cause problems, INF/NAN/out of range values are guaranteed to result in a 0x80000000 value - which plays havoc with constant folding which converts them to either zero or UNDEF. This is also an issue with the scalar implementations (which were already generic IR and what I was trying to match).
This patch changes both scalar and packed versions back to using x86-specific builtins.
It also deals with the other scalar conversion cases that are runtime rounding mode dependent and can have similar issues with constant folding.
A companion clang patch is at D22105
Differential Revision: https://reviews.llvm.org/D22106
llvm-svn: 275981
|
| |
|
|
|
|
| |
As discussed on D22106, improve the testing for constant folding sse scalar conversion intrinsics to ensure we are correctly handling special/out of range cases
llvm-svn: 274846
|
| |
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D12421
llvm-svn: 246312
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Constant propagation for single precision math functions (such as
tanf) is already working, but was not enabled. This patch enables
these for many single-precision functions, and adds respective test
cases.
Newly handled functions: acosf asinf atanf atan2f ceilf coshf expf
exp2f fabsf floorf fmodf logf log10f powf sinhf tanf tanhf
llvm-svn: 246194
|
| |
|
|
| |
llvm-svn: 246191
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Constant propagation for single precision math functions (such as
tanf) is already working, but was not enabled. This patch enables
these for many single-precision functions, and adds respective test
cases.
Newly handled functions: acosf asinf atanf atan2f ceilf coshf expf
exp2f fabsf floorf fmodf logf log10f powf sinhf tanf tanhf
llvm-svn: 246186
|
| |
|
|
| |
llvm-svn: 246166
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Constant propagation for single precision math functions (such as
tanf) is already working, but was not enabled. This patch enables
these for many single-precision functions, and adds respective test
cases.
Newly handled functions: acosf asinf atanf atan2f ceilf coshf expf
exp2f fabsf floorf fmodf logf log10f powf sinhf tanf tanhf
llvm-svn: 246158
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
functionality change.
This update was done with the following bash script:
find test/Transforms -name "*.ll" | \
while read NAME; do
echo "$NAME"
if ! grep -q "^; *RUN: *llc" $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
mv $TEMP $NAME
fi
done
llvm-svn: 186268
|
| |
|
|
|
|
| |
rdar://10514247
llvm-svn: 145730
|
| |
|
|
|
|
| |
rdar://10500969
llvm-svn: 145639
|
| |
|
|
|
|
| |
C99 runtimes don't have exp2).
llvm-svn: 131872
|
| |
|
|
|
|
|
|
| |
point values to their integer representation through the SSE intrinsic
calls. This is the last part of a README.txt entry for which I have real
world examples.
llvm-svn: 123206
|
| |
|
|
|
|
| |
file and make it actually test something...
llvm-svn: 123205
|
| |
|
|
| |
llvm-svn: 81257
|
| |
|
|
|
|
| |
of using llvm-as, now that opt supports this.
llvm-svn: 81226
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
integer and floating-point opcodes, introducing
FAdd, FSub, and FMul.
For now, the AsmParser, BitcodeReader, and IRBuilder all preserve
backwards compatability, and the Core LLVM APIs preserve backwards
compatibility for IR producers. Most front-ends won't need to change
immediately.
This implements the first step of the plan outlined here:
http://nondot.org/sabre/LLVMNotes/IntegerOverflow.txt
llvm-svn: 72897
|
| |
|
|
| |
llvm-svn: 47793
|
| |
|
|
| |
llvm-svn: 36029
|
| |
|
|
|
|
| |
Convert to new test system. This exposes test/Transforms/ConstProp/calls.ll
llvm-svn: 36027
|
|
|
llvm-svn: 33296
|