Page MenuHomePhabricator

craig.topper (Craig Topper)
User

Projects

User does not belong to any projects.

User Details

User Since
Jul 30 2013, 7:58 PM (311 w, 5 d)

Recent Activity

Yesterday

craig.topper added inline comments to D63847: [MC] Add MCInstrAnalysis::evaluateMemoryOperandAddress.
Sun, Jul 21, 10:29 PM · Restricted Project
craig.topper updated the diff for D65017: [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps.

Also update foldAndOfICmps to handle not equal (U)INT_MIN/MAX

Sun, Jul 21, 8:32 PM · Restricted Project
craig.topper retitled D65017: [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps from [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. to [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps.
Sun, Jul 21, 8:32 PM · Restricted Project
craig.topper committed rGee5dc7e7ad8b: [InstCombine] Add foldAndOfICmps test cases inspired by PR42691. (authored by craig.topper).
[InstCombine] Add foldAndOfICmps test cases inspired by PR42691.
Sun, Jul 21, 7:44 PM
craig.topper committed rGe6cd20ba5349: [InstCombine] Update comment I missed in r366649. NFC (authored by craig.topper).
[InstCombine] Update comment I missed in r366649. NFC
Sun, Jul 21, 9:18 AM

Sat, Jul 20

craig.topper committed rG1d149d08d3ae: [InstCombine] Remove insertRangeTest code that handles the equality case. (authored by craig.topper).
[InstCombine] Remove insertRangeTest code that handles the equality case.
Sat, Jul 20, 11:44 PM
craig.topper committed rG8fabdfe9fcd2: [InstCombine] Don't use AddOne/SubOne to see if two APInts are 1 apart. Use… (authored by craig.topper).
[InstCombine] Don't use AddOne/SubOne to see if two APInts are 1 apart. Use…
Sat, Jul 20, 10:27 PM
craig.topper updated the diff for D65017: [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps.

Fix copy/paste mistake in comment

Sat, Jul 20, 12:01 PM · Restricted Project

Fri, Jul 19

craig.topper updated the diff for D65017: [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps.

Rebase after making one of the tests better

Fri, Jul 19, 2:11 PM · Restricted Project
craig.topper committed rG3a3c58f04598: [InstCombine] Fix copy/paste mistake in the test cases I added for PR42691. NFC (authored by craig.topper).
[InstCombine] Fix copy/paste mistake in the test cases I added for PR42691. NFC
Fri, Jul 19, 2:11 PM
craig.topper retitled D65017: [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps from [InstCombine] Add test cases for PR42691. NFC to [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision..
Fri, Jul 19, 2:11 PM · Restricted Project
craig.topper updated the diff for D65017: [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps.

Rebase with the tests pre-commited

Fri, Jul 19, 2:02 PM · Restricted Project
craig.topper created D65017: [InstCombine] Teach foldOrOfICmps to allow icmp eq MIN_INT/MAX to be part of a range comparision. Similar for foldAndOfICmps.
Fri, Jul 19, 2:02 PM · Restricted Project
craig.topper committed rG18230ecf7ef3: [InstCombine] Add test cases for PR42691. NFC (authored by craig.topper).
[InstCombine] Add test cases for PR42691. NFC
Fri, Jul 19, 1:53 PM
craig.topper added inline comments to D63847: [MC] Add MCInstrAnalysis::evaluateMemoryOperandAddress.
Fri, Jul 19, 11:24 AM · Restricted Project

Thu, Jul 18

craig.topper updated subscribers of D63782: [FPEnv] Add fptosi and fptoui constrained intrinsics.
Thu, Jul 18, 11:10 AM · Restricted Project

Wed, Jul 17

craig.topper updated the diff for D55251: [X86] Enable -x86-experimental-vector-widening-legalization by default..

Disable the 64-bit load+store optimization for vectors types. Type legalization will deal with this.

Wed, Jul 17, 11:39 PM · Restricted Project
craig.topper updated the diff for D55251: [X86] Enable -x86-experimental-vector-widening-legalization by default..

Rebase

Wed, Jul 17, 11:31 PM · Restricted Project
craig.topper committed rG8da040221023: [X86] Disable combineConcatVectors for vXi1 vectors. (authored by craig.topper).
[X86] Disable combineConcatVectors for vXi1 vectors.
Wed, Jul 17, 11:22 PM
craig.topper added a comment to D63638: [clang][NewPM] Add new pass manager RUN lines to avx512f-builtins.c.

Just to make sure we're on the same page (and sorry I didn't jump in sooner)...

With the old PM, *anything* that is always_inline *gets* instsimplify run on it, even at -O0, even if you didn't want that. So using -instsimplify explicitly is, IMO, not any more scary of a reliance on LLVM's behavior than the old PM already subjected us to...

That said, if the x86 maintainers are comfortable with *only* using the new PM (because it has an always inliner that literally does nothing else and thus has an absolute minimum amount of LLVM transformations applied), I certainly don't have any objections. =D

Wed, Jul 17, 9:53 PM
craig.topper added inline comments to D64746: Add constrained intrinsics for lrint and lround.
Wed, Jul 17, 9:48 PM · Restricted Project
craig.topper committed rG61fff7a33731: [X86] Make sure we mark 128/256 MLOAD as Legal with VLX when min-legal-vector… (authored by craig.topper).
[X86] Make sure we mark 128/256 MLOAD as Legal with VLX when min-legal-vector…
Wed, Jul 17, 3:27 PM
craig.topper added inline comments to D63782: [FPEnv] Add fptosi and fptoui constrained intrinsics.
Wed, Jul 17, 2:16 PM · Restricted Project

Tue, Jul 16

craig.topper added inline comments to D64174: [DAGCombine] Do several rounds of combine for addcarry nodes..
Tue, Jul 16, 9:57 AM · Restricted Project

Mon, Jul 15

craig.topper committed rGc0b2ed664bc0: [X86] In combineStore, don't convert v2f32 load/store pairs to f64 loads/stores. (authored by craig.topper).
[X86] In combineStore, don't convert v2f32 load/store pairs to f64 loads/stores.
Mon, Jul 15, 10:53 PM
craig.topper added inline comments to D63396: [WinEH] Allocate space in funclets stack to save XMM CSRs.
Mon, Jul 15, 5:39 PM · Restricted Project
craig.topper added inline comments to D63396: [WinEH] Allocate space in funclets stack to save XMM CSRs.
Mon, Jul 15, 5:36 PM · Restricted Project
craig.topper committed rG51193871dafd: [X86] Teach convertToThreeAddress to handle SUB with immediate (authored by craig.topper).
[X86] Teach convertToThreeAddress to handle SUB with immediate
Mon, Jul 15, 4:09 PM
craig.topper added a comment to D64707: [x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483).

Are the multiply test changes due to the flags being used by seto? But seto usage should never be in danger of creating the instruction duplication we're seeing in the motivating case. It does look like we're getting an improvement on those tests, but not for the reason we're selecting LEA.

Mon, Jul 15, 4:06 PM · Restricted Project
craig.topper committed rG81971b2b79c4: [X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out… (authored by craig.topper).
[X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out…
Mon, Jul 15, 10:59 AM
craig.topper added inline comments to D64707: [x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483).
Mon, Jul 15, 10:33 AM · Restricted Project

Sun, Jul 14

craig.topper retitled D64699: [X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out of range. from [X86] Use getLimitedValue to clamp and out of range shift amount instead of asserting. to [X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out of range..
Sun, Jul 14, 9:52 PM · Restricted Project
craig.topper updated the diff for D64699: [X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out of range..

Switch to returning undef

Sun, Jul 14, 9:52 PM · Restricted Project
craig.topper committed rG635d103e0be6: [X86] Separate the memory size of vzext_load/vextract_store from the element… (authored by craig.topper).
[X86] Separate the memory size of vzext_load/vextract_store from the element…
Sun, Jul 14, 7:03 PM

Sat, Jul 13

craig.topper committed rG9450b0084af2: [X86] Remove offset of 8 from the call to FuseInst for UNPCKLPDrr folding added… (authored by craig.topper).
[X86] Remove offset of 8 from the call to FuseInst for UNPCKLPDrr folding added…
Sat, Jul 13, 9:16 PM
craig.topper created D64699: [X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out of range..
Sat, Jul 13, 6:12 PM · Restricted Project

Fri, Jul 12

craig.topper accepted D64676: Support __seg_fs and __seg_gs on x86.

LGTM

Fri, Jul 12, 11:54 PM · Restricted Project, Restricted Project
craig.topper created D64672: [X86] Prevent passing vectors of __int128 as <X x i128> in llvm IR.
Fri, Jul 12, 3:10 PM
craig.topper added a comment to D64285: [InstCombine] Fold select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y) to ashr (X, Y)).

if (Bitwidth == 0) {

  IC->dump();
}

%cmp.i = icmp ne %struct.LIST_HELP* %List.addr.0, null

Fri, Jul 12, 2:04 PM · Restricted Project
craig.topper added a comment to D64285: [InstCombine] Fold select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y) to ashr (X, Y)).

getScalarSizeInBits probably returns 0 for pointers. Only DataLayout knows pointer size.

Fri, Jul 12, 1:58 PM · Restricted Project
craig.topper committed rGb828f0b90adf: [X86] Use MachineInstr::findRegisterDefOperand to simplify some code in… (authored by craig.topper).
[X86] Use MachineInstr::findRegisterDefOperand to simplify some code in…
Fri, Jul 12, 12:30 PM
craig.topper committed rG98f931639bfc: [X86] Add NEG to isUseDefConvertible. (authored by craig.topper).
[X86] Add NEG to isUseDefConvertible.
Fri, Jul 12, 10:57 AM

Thu, Jul 11

craig.topper updated the diff for D64574: [X86] Teach convertToThreeAddress to handle SUB with immediate.

Rebase after commiting tests

Thu, Jul 11, 11:29 AM · Restricted Project
craig.topper committed rG83b380860db8: [X86] Pre commit test cases for D64574. Along with a test case for PR42571. NFC (authored by craig.topper).
[X86] Pre commit test cases for D64574. Along with a test case for PR42571. NFC
Thu, Jul 11, 11:21 AM
craig.topper updated the summary of D64574: [X86] Teach convertToThreeAddress to handle SUB with immediate.
Thu, Jul 11, 10:36 AM · Restricted Project
craig.topper created D64574: [X86] Teach convertToThreeAddress to handle SUB with immediate.
Thu, Jul 11, 10:35 AM · Restricted Project

Wed, Jul 10

craig.topper committed rG88729e3dec36: [X86] Don't convert 8 or 16 bit ADDs to LEAs on Atom in FixupLEAPass. (authored by craig.topper).
[X86] Don't convert 8 or 16 bit ADDs to LEAs on Atom in FixupLEAPass.
Wed, Jul 10, 6:03 PM
craig.topper committed rG1c327c7e0a1a: [X86] Add patterns with and_flag_nocf for BLSI and TBM instructions. (authored by craig.topper).
[X86] Add patterns with and_flag_nocf for BLSI and TBM instructions.
Wed, Jul 10, 3:47 PM
craig.topper committed rG472ad62b704a: [X86] Add a few more TBM and BLSI test cases that show the same issue that… (authored by craig.topper).
[X86] Add a few more TBM and BLSI test cases that show the same issue that…
Wed, Jul 10, 3:47 PM
craig.topper committed rGd916f23b8303: [X86] Add BLSR and BLSMSK to isUseDefConvertible. (authored by craig.topper).
[X86] Add BLSR and BLSMSK to isUseDefConvertible.
Wed, Jul 10, 3:19 PM
craig.topper committed rG021ba49b31dd: [X86] Remove unused variable. NFC (authored by craig.topper).
[X86] Remove unused variable. NFC
Wed, Jul 10, 2:05 PM
craig.topper created D64528: [X86] Separate the memory size of vzext_load/vextract_store from the element size of the result type. Use them improve the codegen of v2f32 loads/stores with sse1 only..
Wed, Jul 10, 1:38 PM · Restricted Project
craig.topper committed rGcaf6b71ab2e6: [X86] Change the IR sequence for _mm_storeh_pi and _mm_storel_pi to perform the… (authored by craig.topper).
[X86] Change the IR sequence for _mm_storeh_pi and _mm_storel_pi to perform the…
Wed, Jul 10, 10:13 AM
craig.topper committed rGf9cb127ca92f: [X86] Add guards to some of the x86 intrinsic tests to skip 64-bit mode only… (authored by craig.topper).
[X86] Add guards to some of the x86 intrinsic tests to skip 64-bit mode only…
Wed, Jul 10, 10:13 AM
craig.topper committed rGab5a30ac9dce: [X86] Add tests for an alternative sequence for _mm_storel_pi/_mm_storeh_pi… (authored by craig.topper).
[X86] Add tests for an alternative sequence for _mm_storel_pi/_mm_storeh_pi…
Wed, Jul 10, 10:12 AM

Tue, Jul 9

craig.topper committed rG50f70de55773: [X86] Limit getTargetConstantFromNode to only work on NormalLoads not extending… (authored by craig.topper).
[X86] Limit getTargetConstantFromNode to only work on NormalLoads not extending…
Tue, Jul 9, 5:41 PM
craig.topper committed rG1ae60797cd98: [X86] Don't form extloads in combineExtInVec unless the load extension is legal. (authored by craig.topper).
[X86] Don't form extloads in combineExtInVec unless the load extension is legal.
Tue, Jul 9, 4:08 PM
craig.topper committed rG84a1f0736340: [X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into… (authored by craig.topper).
[X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into…
Tue, Jul 9, 12:56 PM
craig.topper added a comment to D64285: [InstCombine] Fold select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y) to ashr (X, Y)).

Are we really allowed to change the exact flag from InstSimplify?

Tue, Jul 9, 8:39 AM · Restricted Project

Mon, Jul 8

craig.topper retitled D64295: [X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into isLoadBitCastBeneficial/isStoreBitCastBeneficial to allow X86 to bypass it from [X86][AMDGPU] Add an out parameter to isLoadBitCastBeneficial/isStoreBitCastBeneficial to indicate we shouldn't both checking the alignment. to [X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into isLoadBitCastBeneficial/isStoreBitCastBeneficial to allow X86 to bypass it.
Mon, Jul 8, 10:07 PM · Restricted Project
craig.topper updated the diff for D64295: [X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into isLoadBitCastBeneficial/isStoreBitCastBeneficial to allow X86 to bypass it.

Move the allowsMemoryAccess call into isLoadBitCastBeneficial

Mon, Jul 8, 10:06 PM · Restricted Project
craig.topper added inline comments to D64174: [DAGCombine] Do several rounds of combine for addcarry nodes..
Mon, Jul 8, 9:56 PM · Restricted Project
craig.topper added inline comments to D64174: [DAGCombine] Do several rounds of combine for addcarry nodes..
Mon, Jul 8, 9:43 PM · Restricted Project
craig.topper added a comment to D63638: [clang][NewPM] Add new pass manager RUN lines to avx512f-builtins.c.

What if we just only check the output from the new pass manager. I don't think I care about the differences between the two.

Mon, Jul 8, 6:04 PM
craig.topper added a comment to D63638: [clang][NewPM] Add new pass manager RUN lines to avx512f-builtins.c.

There's some inliner running because the intrinsics are implemented as always_inline functions and they are clearly being inlined in -O0. In a previous post, Chandler said the new PM has a special inliner for always_inline in -O0 and the old pass manager just used the normal inliner.

Oh I forgot that these were marked always_inline. Yes, this special inliner is the AlwaysInliner which is purposefully designed differently than the normal inliner in the legacy PM according to D23299. I'm proposing that we could perhaps just edit the tests to ignore the bitcasts since the different behavior is intended (the AlwaysInliner isn't doing extra work like combining these bitcasts). This way we can still check for the various intrinsics emitted without their IR instruction mappings getting optimized out, and we won't need to use instsimplify to make sure the IR matches.

Taking an example from my other patch, we'd have something like:

diff --git a/clang/test/CodeGen/avx512f-builtins.c b/clang/test/CodeGen/avx512f-builtins.c
index 15571b639b6..4ad63d73235 100644
--- a/clang/test/CodeGen/avx512f-builtins.c
+++ b/clang/test/CodeGen/avx512f-builtins.c
@@ -10479,7 +10479,7 @@ __m512i test_mm512_maskz_abs_epi64 (__mmask8 __U, __m512i __A)
   // CHECK: [[SUB:%.*]] = sub <8 x i64> zeroinitializer, [[A:%.*]]
   // CHECK: [[CMP:%.*]] = icmp sgt <8 x i64> [[A]], zeroinitializer
   // CHECK: [[SEL:%.*]] = select <8 x i1> [[CMP]], <8 x i64> [[A]], <8 x i64> [[SUB]]
-  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> [[SEL]], <8 x i64> %{{.*}}
+  // CHECK: select <8 x i1> %{{.*}}, <8 x i64> {{.*}}, <8 x i64> %{{.*}}  // Ignore the output of the redundant bitcasts
   return _mm512_maskz_abs_epi64 (__U,__A);
 }

It also seems like for some of these tests that some bitcasts are already ignored.

Mon, Jul 8, 6:02 PM
craig.topper added a comment to D63638: [clang][NewPM] Add new pass manager RUN lines to avx512f-builtins.c.

There's some inliner running because the intrinsics are implemented as always_inline functions and they are clearly being inlined in -O0. In a previous post, Chandler said the new PM has a special inliner for always_inline in -O0 and the old pass manager just used the normal inliner.

Mon, Jul 8, 2:06 PM

Sun, Jul 7

craig.topper committed rG1deca50ab147: [X86] Allow execution domain fixing to turn SHUFPD into SHUFPS. (authored by craig.topper).
[X86] Allow execution domain fixing to turn SHUFPD into SHUFPS.
Sun, Jul 7, 11:54 PM
craig.topper committed rGd8261f0288eb: [X86] Make movsd commutable to shufpd with a 0x02 immediate on pre-SSE4.1… (authored by craig.topper).
[X86] Make movsd commutable to shufpd with a 0x02 immediate on pre-SSE4.1…
Sun, Jul 7, 11:54 PM
craig.topper committed rG46f2b583a2da: [X86] Add MOVSDrr->MOVLPDrm entry to load folding table. Add custom handling to… (authored by craig.topper).
[X86] Add MOVSDrr->MOVLPDrm entry to load folding table. Add custom handling to…
Sun, Jul 7, 7:14 PM
craig.topper added inline comments to D64295: [X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into isLoadBitCastBeneficial/isStoreBitCastBeneficial to allow X86 to bypass it.
Sun, Jul 7, 3:46 PM · Restricted Project

Sat, Jul 6

craig.topper created D64295: [X86][AMDGPU][DAGCombiner] Move call to allowsMemoryAccess into isLoadBitCastBeneficial/isStoreBitCastBeneficial to allow X86 to bypass it.
Sat, Jul 6, 11:47 PM · Restricted Project
craig.topper committed rGac744d5a8642: [X86] Make sure load isn't volatile before shrinking it in MOVDDUP isel… (authored by craig.topper).
[X86] Make sure load isn't volatile before shrinking it in MOVDDUP isel…
Sat, Jul 6, 10:34 PM
craig.topper committed rGe753247b061a: [X86] Add PS<->PD domain changing support for MOVH/MOVL load instructions and… (authored by craig.topper).
[X86] Add PS<->PD domain changing support for MOVH/MOVL load instructions and…
Sat, Jul 6, 11:01 AM
craig.topper committed rG317d6093df7b: [X86] Remove patterns from MOVLPSmr and MOVHPSmr instructions. (authored by craig.topper).
[X86] Remove patterns from MOVLPSmr and MOVHPSmr instructions.
Sat, Jul 6, 11:01 AM
craig.topper committed rG913105ca42b8: [X86] Add patterns to select MOVLPDrm from MOVSD+load and MOVHPD from… (authored by craig.topper).
[X86] Add patterns to select MOVLPDrm from MOVSD+load and MOVHPD from…
Sat, Jul 6, 11:01 AM
craig.topper committed rG8c036bf784eb: [X86] Copy some test cases from vector-shuffle-sse1.ll to vector-shuffle-128-v4. (authored by craig.topper).
[X86] Copy some test cases from vector-shuffle-sse1.ll to vector-shuffle-128-v4.
Sat, Jul 6, 11:01 AM
craig.topper added a comment to D64285: [InstCombine] Fold select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y) to ashr (X, Y)).

What is one of the shifts has the "exact" flag set and the other doesn't?

Sat, Jul 6, 8:31 AM · Restricted Project

Fri, Jul 5

craig.topper committed rGd22b2d01cae3: [X86] Correct the size check in foldMemoryOperandCustom. (authored by craig.topper).
[X86] Correct the size check in foldMemoryOperandCustom.
Fri, Jul 5, 11:56 AM
craig.topper committed rG6e6d229e5e95: [X86] Update SSE1 MOVLPSrm and MOVHPSrm isel patterns to ensure loads are non… (authored by craig.topper).
[X86] Update SSE1 MOVLPSrm and MOVHPSrm isel patterns to ensure loads are non…
Fri, Jul 5, 10:34 AM
craig.topper committed rG8a93952a5c1a: [X86] Remove unnecessary isel pattern for MOVLPSmr. (authored by craig.topper).
[X86] Remove unnecessary isel pattern for MOVLPSmr.
Fri, Jul 5, 10:34 AM

Thu, Jul 4

craig.topper committed rG171732aeb33d: [X86] Add custom isel to select ADD/SUB/OR/XOR/AND to their non-immediate forms… (authored by craig.topper).
[X86] Add custom isel to select ADD/SUB/OR/XOR/AND to their non-immediate forms…
Thu, Jul 4, 3:55 PM
craig.topper committed rGe9aed963ce36: [DAGCombiner] Don't combine (addcarry (uaddo X, Y), 0, Carry) -> (addcarry X, Y… (authored by craig.topper).
[DAGCombiner] Don't combine (addcarry (uaddo X, Y), 0, Carry) -> (addcarry X, Y…
Thu, Jul 4, 11:20 AM

Wed, Jul 3

craig.topper committed rG163b8bb3f5a2: [X86] Use pointer sized indices instead of i32 for EXTRACT_VECTOR_ELT and… (authored by craig.topper).
[X86] Use pointer sized indices instead of i32 for EXTRACT_VECTOR_ELT and…
Wed, Jul 3, 11:25 PM
craig.topper created D64190: [DAGCombiner] Don't combine (addcarry (uaddo X, Y), 0, Carry) -> (addcarry X, Y, Carry) if the Carry comes from the uaddo..
Wed, Jul 3, 6:53 PM · Restricted Project
craig.topper added a reviewer for D64067: [X86][PPC] Support -mlong-double-64: erichkeane.
Wed, Jul 3, 1:06 PM · Restricted Project, Restricted Project
craig.topper updated the diff for D55251: [X86] Enable -x86-experimental-vector-widening-legalization by default..

-Rebase
-Add a hack to the reduction cost model code that keeps v2i32, v4i16, v2i16 from having the same cost as v4i32 and v8i16 due to the type legalization cost.

Wed, Jul 3, 12:53 PM · Restricted Project

Tue, Jul 2

craig.topper committed rGb770d2c9d446: [X86] Add a DAG combine for turning *_extend_vector_inreg+load into an… (authored by craig.topper).
[X86] Add a DAG combine for turning *_extend_vector_inreg+load into an…
Tue, Jul 2, 4:21 PM
craig.topper committed rGfa4e825a3bf8: [X86] Copy test cases from vector-zext.ll to vector-zext-widen.ll. Same for… (authored by craig.topper).
[X86] Copy test cases from vector-zext.ll to vector-zext-widen.ll. Same for…
Tue, Jul 2, 11:41 AM
craig.topper committed rGcffbaa93b72b: [X86] Add patterns to select (scalar_to_vector (loadf32)) as (V)MOVSSrm instead… (authored by craig.topper).
[X86] Add patterns to select (scalar_to_vector (loadf32)) as (V)MOVSSrm instead…
Tue, Jul 2, 10:53 AM

Mon, Jul 1

craig.topper committed rG2d306b2d57f2: [X86] Add PreprocessISelDAG support for turning ISD::FP_TO_SINT/UINT into… (authored by craig.topper).
[X86] Add PreprocessISelDAG support for turning ISD::FP_TO_SINT/UINT into…
Mon, Jul 1, 10:54 PM
craig.topper committed rG3f722d40c55c: [X86] Use v4i32 vzloads instead of v2i64 for vpmovzx/vpmovsx patterns where… (authored by craig.topper).
[X86] Use v4i32 vzloads instead of v2i64 for vpmovzx/vpmovsx patterns where…
Mon, Jul 1, 2:27 PM
craig.topper committed rG328b24150e73: [X86] Remove several bad load folding isel patterns for VPMOVZX/VPMOVSX. (authored by craig.topper).
[X86] Remove several bad load folding isel patterns for VPMOVZX/VPMOVSX.
Mon, Jul 1, 2:25 PM
craig.topper committed rG5e7815b695d4: [X86] Correct v4f32->v2i64 cvt(t)ps2(u)qq memory isel patterns (authored by craig.topper).
[X86] Correct v4f32->v2i64 cvt(t)ps2(u)qq memory isel patterns
Mon, Jul 1, 12:05 PM
craig.topper committed rGfcda45a9eb88: [X86] Add more load folding tests for vcvt(t)ps2(u)qq showing missed foldings. (authored by craig.topper).
[X86] Add more load folding tests for vcvt(t)ps2(u)qq showing missed foldings.
Mon, Jul 1, 1:04 AM
craig.topper committed rG29fff0797b27: [X86] Improve the type checking fast-isel handling of vector bitcasts. (authored by craig.topper).
[X86] Improve the type checking fast-isel handling of vector bitcasts.
Mon, Jul 1, 12:12 AM
craig.topper committed rG4ca81a9b9946: [X86] Add a DAG combine to replace vector loads feeding a v4i32->v2f64… (authored by craig.topper).
[X86] Add a DAG combine to replace vector loads feeding a v4i32->v2f64…
Mon, Jul 1, 12:10 AM
craig.topper committed rGfc233c9108d3: [X86] Add some additional load folding tests to vec_int_to_fp.ll/vec_int_to_fp… (authored by craig.topper).
[X86] Add some additional load folding tests to vec_int_to_fp.ll/vec_int_to_fp…
Mon, Jul 1, 12:10 AM
craig.topper committed rGd1728f89878c: [X86] Add MOVHPDrm/MOVLPDrm patterns that use VZEXT_LOAD. (authored by craig.topper).
[X86] Add MOVHPDrm/MOVLPDrm patterns that use VZEXT_LOAD.
Mon, Jul 1, 12:10 AM

Sat, Jun 29

craig.topper committed rG725a8a5dc43f: [X86] Custom lower AVX masked loads to masked load and vselect instead of… (authored by craig.topper).
[X86] Custom lower AVX masked loads to masked load and vselect instead of…
Sat, Jun 29, 11:48 PM
craig.topper committed rG4d0feb28ecbe: [SelectionDAG] Use the memory VT instead of result VT for FoldingSet profiling… (authored by craig.topper).
[SelectionDAG] Use the memory VT instead of result VT for FoldingSet profiling…
Sat, Jun 29, 11:48 PM