Craig Topper
27e2912fa8
Revert r254279 "[X86] Use ArrayRef. NFC". It seems to have upset an MSVC build bot.
...
llvm-svn: 254280
2015-11-30 02:28:19 +00:00
Craig Topper
b84f39865f
[X86] Use ArrayRef. NFC
...
llvm-svn: 254279
2015-11-30 02:08:05 +00:00
Sanjoy Das
6ec2958d7c
[ADT] Fix typo in comment
...
llvm-svn: 254278
2015-11-30 01:24:17 +00:00
Craig Topper
aad5f11e5f
[AVX512] The vpermi2 instructions require an integer vector for the index vector. This is reflected correctly in the intrinsics, but was not refelected in the isel patterns.
...
For the floating point types, this requires adding a bitcast to the index vector when its passed through to the output.
llvm-svn: 254277
2015-11-30 00:13:24 +00:00
Sanjoy Das
9b0015f77d
[SCEV] Use lambda instead of std::bind; NFC
...
The lambda is more readable.
llvm-svn: 254276
2015-11-29 23:40:57 +00:00
Sanjoy Das
3b827c7028
[SCEV] Use range version of all_of; NFC
...
llvm-svn: 254275
2015-11-29 23:40:53 +00:00
Craig Topper
fbde7aa13a
[X86] Remove duplicate entries from intrinsics tables and add asserts to verify there are no others.
...
llvm-svn: 254274
2015-11-29 23:18:32 +00:00
Sanjoy Das
5e30bbe7ae
Fix out of bounds access in hasStructRetAttr
...
llvm-svn: 254273
2015-11-29 23:15:43 +00:00
Dan Gohman
9551a44d0c
[WebAssembly] Delete an obsolete TODO comment.
...
llvm-svn: 254272
2015-11-29 23:09:41 +00:00
Dan Gohman
174b2d83ee
[WebAssembly] Set several MCInstrDesc flags.
...
llvm-svn: 254271
2015-11-29 22:59:19 +00:00
Craig Topper
e20b8c68ed
[X86] _mm256_permutevar8x32_ps should take an integer vector for its shuffle index input.
...
llvm-svn: 254270
2015-11-29 22:53:32 +00:00
Craig Topper
ecae476e4c
[X86] int_x86_avx2_permps and X86ISD::VPERMV should take an integer vector for its shuffle indices.
...
llvm-svn: 254269
2015-11-29 22:53:22 +00:00
Dan Gohman
5237b3991d
[WebAssembly] Delete unused functions. NFC.
...
llvm-svn: 254268
2015-11-29 22:48:57 +00:00
Dan Gohman
7a6b9825ce
[WebAssembly] Minor clang-format and selected clang-tidy cleanups. NFC.
...
llvm-svn: 254267
2015-11-29 22:32:02 +00:00
Sanjay Patel
b67076c0f8
fix typos in comments; NFC
...
llvm-svn: 254266
2015-11-29 22:09:34 +00:00
Davide Italiano
0b14f29285
[SimplifyLibCalls] Don't crash if the function doesn't have a name.
...
llvm-svn: 254265
2015-11-29 21:58:56 +00:00
Davide Italiano
e2db58cfb8
[SimplifyLibCalls] Cross out implemented transformations.
...
llvm-svn: 254264
2015-11-29 21:00:43 +00:00
Davide Italiano
b8b7133c94
[SimplifyLibCalls] Tranform log(pow(x, y)) -> y*log(x).
...
This one is enabled only under -ffast-math. There are cases where the
difference between the value computed and the correct value is huge
even for ffast-math, e.g. as Steven pointed out:
x = -1, y = -4
log(pow(-1), 4) = 0
4*log(-1) = NaN
I checked what GCC does and apparently they do the same optimization
(which result in the dramatic difference). Future work might try to
make this (slightly) less worse.
Differential Revision: http://reviews.llvm.org/D14400
llvm-svn: 254263
2015-11-29 20:58:04 +00:00
Simon Pilgrim
a5c0493ddb
[X86][SSE2] Added SSE2 IR + assembly codegen builtin tests
...
Improved tests as discussed in PR24580
llvm-svn: 254262
2015-11-29 20:23:00 +00:00
Diego Novillo
7ff0a174d1
SamplePGO - Do not use std::to_string in diagnostics.
...
This fixes buildbots in systems that std::to_string is not present. It
also tidies the output of the diagnostic to render doubles a bit better
(thanks Ben Kramer for help with string streams and format).
llvm-svn: 254261
2015-11-29 18:23:26 +00:00
Craig Topper
6066164454
Use a lambda instead of std::bind and std::mem_fn I introduced in r254242. NFC
...
llvm-svn: 254260
2015-11-29 18:05:22 +00:00
Simon Pilgrim
88aa627c0b
[X86][SSE] Added support for lowering to ADDSUBPS/ADDSUBPD with commuted inputs
...
We could already recognise shuffle(FSUB, FADD) -> ADDSUB, this allow us to recognise shuffle(FADD, FSUB) -> ADDSUB by commuting the shuffle mask prior to matching.
llvm-svn: 254259
2015-11-29 16:41:04 +00:00
Rafael Espindola
3f85d24df4
Add a passing test.
...
When a comdat is discarded, any globals defined in it become undefined.
llvm-svn: 254258
2015-11-29 15:52:12 +00:00
Rafael Espindola
c73fdcd1b7
Don't depend on the order the IR is copied.
...
llvm-svn: 254257
2015-11-29 15:22:49 +00:00
Rafael Espindola
94247d0860
Don't depend on the order the IR is copied.
...
llvm-svn: 254256
2015-11-29 15:08:39 +00:00
Rafael Espindola
290409ef5d
Make this test less strict.
...
We just want to test what is copied, no the order.
llvm-svn: 254255
2015-11-29 14:53:06 +00:00
Rafael Espindola
eb5e0a77b4
Simplify. NFC.
...
llvm-svn: 254254
2015-11-29 14:33:06 +00:00
George Rimar
cc06a6ffd3
Fixed potential crash on non-ELF64LE targets.
...
Incorrect template specialization was used (generic ELFT type was expected but platform specific was used).
llvm-svn: 254253
2015-11-29 14:14:20 +00:00
NAKAMURA Takumi
704b795634
clang/test/CodeGen/arm-v8.1a-neon-intrinsics.c REQUIRES both arm and aarch64.
...
llvm-svn: 254252
2015-11-29 13:43:05 +00:00
Alexandros Lamprineas
cd8d973932
ARM v8.1a adds Advanced SIMD instructions for Rounding Double Multiply
...
Add/Subtract.
Add missing tests that accidentally were not committed in rL254250.
Differential Revision: http://reviews.llvm.org/D14982
llvm-svn: 254251
2015-11-29 10:53:28 +00:00
Alexandros Lamprineas
502592c1d4
ARM v8.1a adds Advanced SIMD instructions for Rounding Double Multiply
...
Add/Subtract.
The following instructions are added to AArch32 instruction set:
- VQRDMLAH: Vector Saturating Rounding Doubling Multiply Accumulate
Returning High Half
- VQRDMLSH: Vector Saturating Rounding Doubling Multiply Subtract
Returning High Half
The following instructions are added to AArch64 instruction set:
- SQRDMLAH: Signed Saturating Rounding Doubling Multiply Accumulate
Returning High Half
- SQRDMLSH: Signed Saturating Rounding Doubling Multiply Subtract
Returning High Half
This patch adds intrinsic and ACLE macro support for these instructions,
as well as corresponding tests.
Differential Revision: http://reviews.llvm.org/D14982
llvm-svn: 254250
2015-11-29 10:43:59 +00:00
Kuba Brecka
e14261a4c9
Fixup for r254228 ("Port tsan_rtl_amd64.S to OS X to add support for setjmp/longjmp") to fix the build of unit tests. We need to add the ASM file into RTTsan_dynamic as well.
...
llvm-svn: 254249
2015-11-29 08:48:47 +00:00
Igor Breger
e293e83f5d
AVX512:Implemented encoding for the vmovq.s instruction.
...
Differential Revision: http://reviews.llvm.org/D14810
llvm-svn: 254248
2015-11-29 07:41:26 +00:00
Craig Topper
3a71f35a67
[X86] Remove temporary variables from intrinsic macros. NFC
...
llvm-svn: 254247
2015-11-29 06:50:33 +00:00
Craig Topper
d896b03e4c
Remove an intermediate lambda. NFC
...
llvm-svn: 254246
2015-11-29 05:38:08 +00:00
Xinliang David Li
abf49140d4
sync up with master file
...
llvm-svn: 254245
2015-11-29 04:53:15 +00:00
Xinliang David Li
61f0d074a0
Minor code cleanups
...
- Add const keyword
- fix code comments
- move forward decl to the common file
llvm-svn: 254244
2015-11-29 04:52:34 +00:00
Craig Topper
b4b66d06df
Remove unnecessary intermediate lambda. NFC
...
llvm-svn: 254243
2015-11-29 04:37:14 +00:00
Craig Topper
d0573179dc
[SelectionDAG] Use std::any_of instead of a manually coded loop. NFC
...
llvm-svn: 254242
2015-11-29 04:37:11 +00:00
Rafael Espindola
c945c8d22e
Correctly handle llvm.global_ctors merging.
...
We were not handling the case where an entry must be dropped and the
destination module has no llvm.global_ctors.
llvm-svn: 254241
2015-11-29 03:29:42 +00:00
Rafael Espindola
9f30fac4d8
Fix a crash when writing merged bitcode.
...
Playing with mutateType in here was making getValueType and getType
incompatible.
llvm-svn: 254240
2015-11-29 03:21:30 +00:00
Davide Italiano
da3beebad1
[SimplifyLibCalls] Use any_of(). Suggested by David Blaikie!
...
llvm-svn: 254239
2015-11-28 22:27:48 +00:00
Benjamin Kramer
89766e5b1d
[SimplifyLibCalls] Fix inverted condition that lead to an uninitialized memory read below.
...
Found by msan!
llvm-svn: 254238
2015-11-28 21:43:12 +00:00
Simon Pilgrim
4c5ab52a54
[X86][AVX] Regenerate ADDSUB tests
...
Tidied up triple and regenerate tests using update_llc_test_checks.py
llvm-svn: 254237
2015-11-28 19:20:49 +00:00
Xinliang David Li
a59bb52913
Sync up template file with master
...
llvm-svn: 254236
2015-11-28 19:12:23 +00:00
Xinliang David Li
b75544a6df
[PGO] Move value profile format related structures and APIs to common file
...
This is the last step to enable profile runtime to share the same value prof
data format and reader/writer code with llvm host tools. The VP related
data structures are moved to a section in InstrProfData.inc enabled with macro
INSTR_PROF_VALUE_PROF_DATA, and common API implementations are enabled with
INSTR_PROF_COMMON_API_IMPL. There should be no functional change.
llvm-svn: 254235
2015-11-28 19:07:09 +00:00
Renato Golin
5dbc8a5283
Revert "[ARM] Generate ABI_optimization_goals build attribute, as described in the ARM ARM."
...
This reverts commit r254201 and r254202, as it broke test-suite,
self-hosting and sanitizer tests on ARM buildbots.
llvm-svn: 254234
2015-11-28 17:23:46 +00:00
Simon Pilgrim
d9bb73b236
[X86][FMA] Added 512-bit tests to match 128/256-bit tests coverage
...
As discussed on D14909
llvm-svn: 254233
2015-11-28 16:04:24 +00:00
Simon Pilgrim
82f663d755
[X86][FMA] More thorough FMA tests
...
Added FMADD/FMSUB/FNMADD/FNMSUB tests for all types
Added load folding tests for 512-bit vectors
NOTE: Many of the AVX512 FMA instructions don't yet commute/fold correctly
As discussed on D14909
llvm-svn: 254232
2015-11-28 14:28:44 +00:00
Simon Pilgrim
29412ee45f
[X86][AVX2] Tidied up PBROADCAST tests
...
Tidied up triple and regenerate tests using update_llc_test_checks.py
llvm-svn: 254231
2015-11-28 14:15:40 +00:00