- Jul 27, 2020
-
-
Lang Hames authored
-
Valentin Clement authored
Reviewed By: tskeith, klausler, ichoyjx Differential Revision: https://reviews.llvm.org/D83998
-
Martin Storsjö authored
Previously, the test could pass with one part of c3b1d730 removed.
-
Jez Ng authored
Needed for testing Objective-C programs (since e.g. Core Foundation is a framework) Reviewed By: #lld-macho, compnerd Differential Revision: https://reviews.llvm.org/D83925
-
Craig Topper authored
[X86] Turn X86DAGToDAGISel::tryVPTERNLOG into a fully custom instruction selector that can handle bitcasts between logic ops Previously we just matched the logic ops and replaced with an X86ISD::VPTERNLOG node that we would send through the normal pattern match. But that approach couldn't handle a bitcast between the logic ops. Extending that approach would require us to peek through the bitcasts and emit new bitcasts to match the types. Those new bitcasts would then have to be properly topologically sorted. This patch instead switches to directly emitting the MachineSDNode and skips the normal tablegen pattern matching. We do have to handle load folding and broadcast load folding ourselves now. Which also means commuting the immediate control. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D83630
-
Tim Keith authored
If a symbol (that is not a dummy argument) is implicitly declared inside a statement function, don't create it in the statement function's scope. Instead, treat statement functions like blocks when finding the inclusive scope and create the symbol there. Add a new flag, StmtFunction, to symbols that represent statement functions. Differential Revision: https://reviews.llvm.org/D84588
-
Hannes Käufler authored
-
Craig Topper authored
These cost methods don't make much sense in X86Subtarget. Make them methods in X86's TTI and move the feature checks from the X86Subtarget constructor into these methods. Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D84594
-
Juneyoung Lee authored
-
Bruno Ricci authored
-
Bruno Ricci authored
-
Bruno Ricci authored
-
- Jul 26, 2020
-
-
Simon Pilgrim authored
If we lower a v2i64 shuffle to PSHUFD, we currently clamp undef elements to 0, (elements 0,1 of the v4i32) which can result in the shuffle referencing more elements of the source vector than expected, affecting later shuffle combines and KnownBits/SimplifyDemanded calls. By ensuring we widen the undef mask element we allow getV4X86ShuffleImm8 to use inline elements as the default, which are more likely to fold.
-
Vincent Zhao authored
This diff provides a concrete test case for the error that will be raised when the iteration space is non hyper-rectangular. The corresponding emission method for this error message has been changed as well. Differential Revision: https://reviews.llvm.org/D84531
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
-
Matt Arsenault authored
The legal cases should be the first rules.
-
Matt Arsenault authored
-
Matt Arsenault authored
I noticed these don't use the _gfx9, non-m0 reading variants but not sure if that's a bug or not. It's the same in the DAG.
-
Matt Arsenault authored
-
Sanjay Patel authored
-
Matt Arsenault authored
-
Matt Arsenault authored
This matches the DAG behavior and fixes immediate folding
-
Matt Arsenault authored
Split into separate tests and make more consistent with the others.
-
Xing GUO authored
This patch renames getUsedSectionNames() to getNonEmptySectionNames. NFC.
-
Sanjay Patel authored
-
Sanjay Patel authored
Follow-up to D84035 / rG7393d757. This sidesteps a question of FMF/poison on fcmp raised in PR46077: http://bugs.llvm.org/PR46077 https://alive2.llvm.org/ce/z/TCsyzD define i1 @src(float %x) { %0: %x42 = fadd nnan ninf float %x, 42.000000 %r = fcmp ueq float %x42, inf ret i1 %r } => define i1 @tgt(float %x) { %0: ret i1 0 } Transformation seems to be correct! https://alive2.llvm.org/ce/z/FQaH7a define i1 @src(i8 %x) { %0: %cast = uitofp i8 %x to float %r = fcmp one float inf, %cast ret i1 %r } => define i1 @tgt(i8 %x) { %0: ret i1 1 } Transformation seems to be correct!
-
Sanjay Patel authored
-
Juneyoung Lee authored
-
Juneyoung Lee authored
This is a simple patch that adds constant folding for freeze instruction. IIUC, it isn't needed to update ConstantFold.cpp because there is no freeze constexpr. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D84597
-
Juneyoung Lee authored
This is a simple patch that makes canCreateUndefOrPoison use Instruction::isBinaryOp because BinaryOperator inherits Instruction. Reviewed By: nikic Differential Revision: https://reviews.llvm.org/D84596
-
Juneyoung Lee authored
-
Juneyoung Lee authored
-
Roman Lebedev authored
DenseMap is a single allocation underneath, so this is has pretty expected performance impact on large-ish (3.8G) xray log processing time.
-
Roman Lebedev authored
It doesn't really need to know where Timings are stored, it just needs to be able to sort them, so MutableArrayRef is enough. That uncovers an interesting quirk that it relied on implicit double->int conversion for calculating percentiles.
-
Alex Richardson authored
When running multiple shards, don't include skipped tests in the xunit output since merging the files will result in duplicates. In our CHERI Jenkins CI, I configured the libc++ tests to run using sharding (since we are testing using a single-CPU QEMU). We then merge the generated XUnit xml files to produce a final result, but if the individual XMLs report tests excluded due to sharding each test is included N times in the final result. This also makes it difficult to find the tests that were skipped due to missing REQUIRES: etc. Reviewed By: yln Differential Revision: https://reviews.llvm.org/D84235
-
Alex Richardson authored
Like Android, FreeBSDs libc calls memchr which causes this test to fail. Reviewed By: emaste Differential Revision: https://reviews.llvm.org/D84541
-
Amara Emerson authored
[AArch64][GlobalISel] Make <8 x s16> and <16 x s8> legal types for G_SHUFFLE_VECTOR and G_IMPLICIT_DEF. Trivial change, we're still missing support for rev matching for these types in the combiner.
-
Craig Topper authored
The switch in emitNop uses 64-bit registers for nops exceeding 2 bytes. This isn't valid outside 64-bit mode. We could fix this easily enough, but there are no users that ask for more than 2 bytes outside 64-bit mode. Inlining the method to make the coupling between the two methods more explicit.
-