summaryrefslogtreecommitdiffstats
path: root/llvm/test
Commit message (Collapse)AuthorAgeFilesLines
* [X86][SSE] Added tests where we should be trying to widen a load+splat into ↵Simon Pilgrim2016-07-231-0/+149
| | | | | | a broadcast llvm-svn: 276527
* [X86][SSE] Regenerated uitofp <2 x i32> -> <2 x float> conversion testsSimon Pilgrim2016-07-231-16/+51
| | | | | | Demonstrate difference in codegen discussed on PR14760 llvm-svn: 276526
* [InstCombine] allow icmp (bit-manipulation-intrinsic(), C) folds for vectorsSanjay Patel2016-07-231-8/+3
| | | | llvm-svn: 276523
* [AVX512] Implement commuting support for EVEX encoded FMA3 instructions.Craig Topper2016-07-233-86/+42
| | | | llvm-svn: 276521
* [Profile] Use explicit flag to enable IR PGOXinliang David Li2016-07-231-1/+2
| | | | | | | | Patch by Jake VanAdrighem Differential Revision: http://reviews.llvm.org/D22607 llvm-svn: 276516
* [SCEV] Make isImpliedCondOperandsViaRanges smarterSanjoy Das2016-07-231-0/+66
| | | | | | | | | | | | This change lets us prove things like "{X,+,10} s< 5000" implies "{X+7,+,10} does not sign overflow" It does this by replacing replacing getConstantDifference by computeConstantDifference (which is smarter) in isImpliedCondOperandsViaRanges. llvm-svn: 276505
* auto-generate checksSanjay Patel2016-07-231-32/+62
| | | | llvm-svn: 276501
* Revert "[AMDGPU] Emit read-only data to .rodata for hsa"Tom Stellard2016-07-222-2/+2
| | | | | | | | | | | | This reverts commit r276298. Data stored in .rodata can have a negative offset from .text, but we don't support negative values in relocations yet. This caused a regression in one of the amp conformance tests: 5_Data_Cont/5_2_a_v/5_2_3_m/Assignment/Test.02.01 llvm-svn: 276498
* [LoopDataPrefetch] Include hotness of region in opt remarkAdam Nemet2016-07-221-0/+82
| | | | llvm-svn: 276488
* add tests for icmp vector foldsSanjay Patel2016-07-222-1/+50
| | | | llvm-svn: 276482
* GlobalISel: allow multiple types on MachineInstrs.Tim Northover2016-07-225-52/+52
| | | | llvm-svn: 276481
* Unpoison stack before resume instructionVitaly Buka2016-07-222-1/+107
| | | | | | | | | | | | | | | | | | | Summary: Clang inserts cleanup code before resume similar way as before return instruction. This makes asan poison local variables causing false use-after-scope reports. __asan_handle_no_return does not help here as it was executed before llvm.lifetime.end inserted into resume block. To avoid false report we need to unpoison stack for resume same way as for return. PR27453 Reviewers: kcc, eugenis Differential Revision: https://reviews.llvm.org/D22661 llvm-svn: 276480
* Add flag to PassManagerBuilder to disable GVN Hoist Pass.Alina Sbirlea2016-07-221-1/+0
| | | | | | | | | | | | | | Summary: Adding a flag to diable GVN Hoisting by default. Note: The GVN Hoist Pass causes some Halide tests to hang. Halide will disable the pass while investigating. Reviewers: llvm-commits, chandlerc, spop, dberlin Subscribers: mehdi_amini Differential Revision: https://reviews.llvm.org/D22639 llvm-svn: 276479
* [SLPVectorizer] Vectorize reverse-order loads in horizontal reductionsMichael Kuperstein2016-07-221-0/+49
| | | | | | | | | | | | | | | | | | When vectorizing a tree rooted at a store bundle, we currently try to sort the stores before building the tree, so that the stores can be vectorized. For other trees, the order of the root bundle - which determines the order of all other bundles - is arbitrary. That is bad, since if a leaf bundle of consecutive loads happens to appear in the wrong order, we will not vectorize it. This is partially mitigated when the root is a binary operator, by trying to build a "reversed" tree when that's considered profitable. This patch extends the workaround we have for binops to trees rooted in a horizontal reduction. This fixes PR28474. Differential Revision: https://reviews.llvm.org/D22554 llvm-svn: 276477
* add tests for icmp vector foldsSanjay Patel2016-07-221-0/+24
| | | | llvm-svn: 276476
* add tests for icmp vector foldsSanjay Patel2016-07-221-0/+24
| | | | llvm-svn: 276475
* add tests for icmp vector foldsSanjay Patel2016-07-222-6/+69
| | | | llvm-svn: 276472
* [llvm-cov] Don't copy stylesheets into index filesVedant Kumar2016-07-221-5/+6
| | | | | | Just link in the stylesheet from the toplevel dir of the report. llvm-svn: 276468
* update to use FileCheck and auto-generate checksSanjay Patel2016-07-221-161/+338
| | | | llvm-svn: 276466
* add tests for icmp vector foldsSanjay Patel2016-07-222-0/+26
| | | | llvm-svn: 276464
* GlobalISel: implement legalization pass, with just one transformation.Tim Northover2016-07-221-0/+34
| | | | | | | | | This adds the actual MachineLegalizeHelper to do the work and a trivial pass wrapper that legalizes all instructions in a MachineFunction. Currently the only transformation supported is splitting up a vector G_ADD into one acting on smaller vectors. llvm-svn: 276461
* [ThinLTO/gold] Remove thin archive part of new test due to bot failuresTeresa Johnson2016-07-221-12/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | I am getting a bot failure from the thin archive part of this test: From http://bb.pgr.jp/builders/cmake-llvm-x86_64-linux/builds/40468/steps/test_llvm/logs/LLVM%20%3A%3A%20tools__gold__X86__thinlto_emit_linked_objects.ll: Command Output (stderr): -- /home/bb/cmake-llvm-x86_64-linux/build/./bin/llvm-ar: creating /home/bb/cmake-llvm-x86_64-linux/build/test/tools/gold/X86/Output/thinlto_emit_linked_objects.ll.tmp2.a /usr/bin/ld.gold: internal error in add_writer, at ../../gold/token.h:124 -- This appears to be an issue with an older version of gold. The test case passes for me locally when I use the gold v1.12 I was testing with, but when I tried the gold installed on my system which is v1.11 I get the same error. Remove the thin archive version of the test, since there isn't a way to predicate it on gold version. llvm-svn: 276453
* Recommit - [DSE]Enhance shorthening MemIntrinsic based on OverlapIntervalsJun Bum Lim2016-07-223-0/+67
| | | | | | | | | | | Recommiting r275571 after fixing crash reported in PR28270. Now we erase elements of IOL in deleteDeadInstruction(). Original Summary: This change use the overlap interval map built from partial overwrite tracking to perform shortening MemIntrinsics. Add test cases which was missing opportunities before. llvm-svn: 276452
* add tests for vector bit manipulation intrinsicsSanjay Patel2016-07-221-2/+40
| | | | llvm-svn: 276451
* [ThinLTO/gold] Support for getting list of included objects from goldTeresa Johnson2016-07-222-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In the distributed backend case, the ThinLink step and the final native object link are separate processes. This can be problematic when archive libraries are involved in the link (e.g. via --start-lib/--end-lib pairs). The linker only includes objects from libraries when there is a strong reference to them, and depending on the intervening ThinLTO backend processes' importing/inlining, the strong references may appear different in the two link steps. See D22356 and D22467 for two scenarios where this causes issues. To ensure that the final link includes the same objects, this patch adds support for an "=filename" form of the thinlto-index-only plugin option, in which case objects gold included in the link are emitted to the given filename. This should be used as input to the final link (e.g. via the @filename option to gold), instead of listing all the objects within --start-lib/--end-lib pairs again. Note that the support for the gold callback that identifies included objects was added in gold version 1.12. Reviewers: davidxl, mehdi_amini Subscribers: llvm-commits, mehdi_amini Differential Revision: https://reviews.llvm.org/D22677 llvm-svn: 276450
* [PM] Port BreakCriticalEdges to the new PM.Wei Mi2016-07-222-0/+2
| | | | | | Differential Revision: https://reviews.llvm.org/D22688 llvm-svn: 276449
* Invariant start/end intrinsics overloaded for address spaceAnna Thomas2016-07-226-18/+45
| | | | | | | | | | | | | | | | | | | | | | Summary: The llvm.invariant.start and llvm.invariant.end intrinsics currently support specifying invariant memory objects only in the default address space. With this change, these intrinsics are overloaded for any adddress space for memory objects and we can use these llvm invariant intrinsics in non-default address spaces. Example: llvm.invariant.start.p1i8(i64 4, i8 addrspace(1)* %ptr) This overloaded intrinsic is needed for representing final or invariant memory in managed languages. Reviewers: apilipenko, reames Subscribers: llvm-commits llvm-svn: 276447
* AMDGPU: Remove redundant testMatt Arsenault2016-07-222-115/+1
| | | | llvm-svn: 276439
* AMDGPU: Fix groupstaticsize for large LDSMatt Arsenault2016-07-221-2/+15
| | | | | | | | | The size can exceed s_movk_i32's limit, and we don't want to use it this early since it inhibits optimizations. This should probably be merged to the release branch. llvm-svn: 276438
* AMDGPU: Add HSA dispatch id intrinsicMatt Arsenault2016-07-221-0/+19
| | | | llvm-svn: 276437
* AMDGPU: Fix i1 fp_to_intMatt Arsenault2016-07-224-7/+97
| | | | | | | R600's i1 fp_to_uint selected but was incorrect according to what instcombine constant folds to. llvm-svn: 276435
* GlobalISel: implement alloca instructionTim Northover2016-07-222-1/+17
| | | | llvm-svn: 276433
* [SelectionDAG] Optimization of BITREVERSE legalization for power-of-2 ↵Simon Pilgrim2016-07-223-2502/+1005
| | | | | | | | | | | | | | integer scalar/vector types An extension of D19978, this patch replaces the default BITREVERSE evaluation of individual bit masks+shifts with block mask+shifts when we have integer elements of power-of-2 bits in size. After calling BSWAP to reverse the order of the constituent bytes (which typically follows a similar approach), every neighbouring 4-bits, 2-bits and finally 1-bit pairs are masked off and swapped over with shifts. In doing so we can significantly reduce the number of operations required. Differential Revision: https://reviews.llvm.org/D21578 llvm-svn: 276432
* [Hexagon] Use loop data prefetch on HexagonKrzysztof Parzyszek2016-07-221-0/+27
| | | | llvm-svn: 276422
* [X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128 ↵Simon Pilgrim2016-07-228-201/+99
| | | | | | | | | | | | | | | | (reapplied) As reported on PR26235, we don't currently make use of the VBROADCASTF128/VBROADCASTI128 instructions (or the AVX512 equivalents) to load+splat a 128-bit vector to both lanes of a 256-bit vector. This patch enables lowering from subvector insertion/concatenation patterns and auto-upgrades the llvm.x86.avx.vbroadcastf128.pd.256 / llvm.x86.avx.vbroadcastf128.ps.256 intrinsics to match. We could possibly investigate using VBROADCASTF128/VBROADCASTI128 to load repeated constants as well (similar to how we already do for scalar broadcasts). Reapplied with fix for PR28657 - removed intrinsic definitions (clang companion patch to be be submitted shortly). Differential Revision: https://reviews.llvm.org/D22460 llvm-svn: 276416
* [FastISel] Ignore @llvm.assume.Ahmed Bougacha2016-07-221-0/+14
| | | | llvm-svn: 276410
* [llvm-cov] - Add the coverage of lines in the summary report.Ying Yi2016-07-222-4/+4
| | | | | | | | | | The llvm-cov ‘report' command displays a summary of the coverage of a binary file. The summary report currently only includes covered regions and covered functions. This patch adds the coverage of lines in the summary report. Differential Revision: https://reviews.llvm.org/D22569 llvm-svn: 276409
* [llvm-profdata] Bring back reading profile data from STDIN.Benjamin Kramer2016-07-221-0/+1
| | | | | | This feature was lost in r276197. llvm-svn: 276407
* Revert "[X86][AVX] Added support for lowering to VBROADCASTF128/VBROADCASTI128"Benjamin Kramer2016-07-227-95/+195
| | | | | | | | It caused PR28657. This reverts commit r276281. llvm-svn: 276405
* [llvm-cov] - Improve llvm-cov error messageYing Yi2016-07-221-0/+3
| | | | | | | | | | | | | | | | | | | Summary: When giving the following command: % llvm-cov report -instr-profile=default.profraw llvm-cov will give the following error message: >llvm-cov report: Not enough positional command line arguments specified! >Must specify at least 1 positional arguments: See: orbis-llvm-cov report -help This patch changes the error message from '1 positional arguments' to '1 positional argument'. Differential Revision: https://reviews.llvm.org/D22621 llvm-svn: 276404
* [mips][microMIPS] Implement SLT, SLTI, SLTIU, SLTU microMIPS32r6 instructionsHrvoje Varga2016-07-2219-54/+130
| | | | | | Differential Revision: https://reviews.llvm.org/D19906 llvm-svn: 276397
* [AVX512] Add ExeDomain to vector extend and truncate instructions.Craig Topper2016-07-2211-75/+75
| | | | llvm-svn: 276394
* [AVX512] Add initial support for the Execution Domain fixing pass to change ↵Craig Topper2016-07-2232-398/+381
| | | | | | some EVEX instructions. llvm-svn: 276393
* [AVX512] Add load folding for some AVX512VL logic and arithmetic instructions.Craig Topper2016-07-221-0/+220
| | | | llvm-svn: 276391
* [AVX512] Update X86InstrInfo::foldMemoryOperandCustom to handle the EVEX ↵Craig Topper2016-07-221-0/+10
| | | | | | encoded instructions too. llvm-svn: 276390
* Don't remove side effecting instructions due to ConstantFoldInstructionDavid Majnemer2016-07-223-41/+53
| | | | | | | | | 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
* Fix detection of stack-use-after scope for char arrays.Vitaly Buka2016-07-221-0/+20
| | | | | | | | | | | | | | Summary: Clang inserts GetElementPtrInst so findAllocaForValue was not able to find allocas. PR27453 Reviewers: kcc, eugenis Differential Revision: https://reviews.llvm.org/D22657 llvm-svn: 276374
* [IRCE] Don't misuse CHECK-LABEL; NFCSanjoy Das2016-07-225-30/+31
| | | | llvm-svn: 276373
* [IRCE] Add an option to skip profitability checksSanjoy Das2016-07-221-0/+31
| | | | | | | | If `-irce-skip-profitability-checks` is passed in, IRCE will kick in in all cases where it is legal for it to kick in. This flag is intended to help diagnose and analyse performance issues. llvm-svn: 276372
* [llvm-cov] Strengthen a test caseVedant Kumar2016-07-211-0/+13
| | | | | | Check that stylesheets work when we're not using -output-dir. llvm-svn: 276363
OpenPOWER on IntegriCloud