Commit Graph

53836 Commits

Author SHA1 Message Date
Konstantin Zhuravlyov db963fc642 AMDGPU: Add 64-bit relative variant kind
Differential Revision: https://reviews.llvm.org/D47601


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334443 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 21:37:57 +00:00
Matt Arsenault 696326c395 DAG: Fix extract_subvector combine for a single element
This would fail before because 1x vectors aren't legal,
so instead just use the scalar type.

Avoids regressions in a future AMDGPU commit to add
v4i16/v4f16 as legal types.

Test update is just the one test that this triggers
on in tree now. It wasn't checking anything before.
The result is completely  changed since the selects
are eliminated. Not sure if it's considered better
or not.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334440 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 21:27:41 +00:00
Farhana Aleen 4128fd181f [SLP] Add testcases of min/max reduction pattern for AMDGPU.
Author: FarhanaAleen

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334435 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 20:29:31 +00:00
Tim Shen 5be29b2568 Fix incorrect CHECK-LABEL
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334434 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 19:56:12 +00:00
Justin Lebar e2401ceceb [SCEV] Add transform zext((A * B * ...)<nuw>) --> (zext(A) * zext(B) * ...)<nuw>.
Reviewers: sanjoy

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D48041

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334429 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 18:57:58 +00:00
Justin Lebar 109b3a6dbd [SCEV] Add nuw/nsw to mul ops in StrengthenNoWrapFlags where safe.
Summary:
Previously we would add them for adds, but not multiplies.

Reviewers: sanjoy

Subscribers: llvm-commits, hiraditya

Differential Revision: https://reviews.llvm.org/D48038

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334428 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 18:57:42 +00:00
Krzysztof Parzyszek a6348bee3e [Hexagon] Late predicate producers cannot be used as dot-new sources
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334426 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 18:45:52 +00:00
Tim Shen 9299628cf4 [SCEV] Canonicalize "A /u C1 /u C2" to "A /u (C1*C2)".
Summary: FWIW InstCombine already folds this. Also avoid the case where C1*C2 overflows.

Reviewers: sunfish, sanjoy

Subscribers: hiraditya, bixia, llvm-commits

Differential Revision: https://reviews.llvm.org/D47965

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334425 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 18:44:58 +00:00
Stanislav Mekhanoshin 7a3f751cbc [AMDGPU] Do not consider indirect acces through phi for wave limiter
Rational: if there is indirect access that is usually an issue
because load is not ready by the use. However, if use is inside a
loop and load is outside that is potentially an issue for a first
iteration only.

Differential Revision: https://reviews.llvm.org/D47740

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334420 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 16:50:49 +00:00
Aleksandar Beserminji 85edf48b76 [mips] Fix spill slot for mips3, n64 abi
When program is compiled for mips3 with n64 abi, wrong register class
is used for creating an emergency spill slot. This patch fixes the
correct register class to be chosen.

This patch resolves PR35859.

Thanks to John Baldwin for reporting the issue!

Differential Revision: https://reviews.llvm.org/D47938



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334419 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 16:50:28 +00:00
Dylan McKay b6377293f2 [AVR] Set trackLivenessAfterRegAlloc
This sets trackLivenessAfterRegAlloc on AVRRegisterInfo.

Most existing targets set this flag. Without it, specific IR inputs
cause LLVM to fail with:

Assertion failed: (getParent()->getProperties().hasProperty( MachineFunctionProperties::Property::TracksLiveness) &&
                   "Liveness information is accurate"), function livein_begin
file MachineBasicBlock.cpp, line 1354.

With this commit, this no longer happens.

Patch by Peter Nimmervoll.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334409 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 14:46:48 +00:00
Clement Courbet ca4e522508 [X86] Fix skylake server scheduling info.
Summary:
This fixes most of the scheduling info for SKX vector operations.
I had to split a lot of the YMM/ZMM classes into separate classes for YMM and ZMM.

The before/after llvm-exegesis analysis are in the phabricator diff.

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D47721

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334407 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 14:37:53 +00:00
Sanjay Patel 2210d8ab6c [x86] add scalar cvtt intrinsic tests; NFC
More coverage for the problem noted in D47993 (although these shouldn't be affected by that patch).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334404 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 13:51:34 +00:00
Roman Lebedev 8a8a729242 [NFC][AMDGPU] Add tests for all the various IR patterns equivalent to extracting low bits.
Summary:
The idiom recognition seems rather poor.
Only the `@bzhi32_d0` produces `v_bfe_u32`.
But they all should.

This needs to be fixed before D47980 can be re-landed.

Reviewers: mareko, bogner, rampitec, arsenm, tstellar, nhaehnle

Reviewed By: nhaehnle

Subscribers: kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Tags: #amdgpu

Differential Revision: https://reviews.llvm.org/D48005

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334398 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 10:21:10 +00:00
Craig Topper b9583480e2 [X86] Add encoding tests for avx5124fmaps and avx5124vnni instructions.
I forgot to git add these in r333812

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334387 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 06:22:41 +00:00
Craig Topper 713ff626ae [X86] Add test files for upgrade of vbmi2 expand load and compress store intrinsics that was done in r334381.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334386 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 06:20:24 +00:00
Craig Topper e5d2855ab4 [X86] Remove masking from dbpsadbw intrinsics, use select in IR instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334384 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 06:18:22 +00:00
Daniel Cederman 82194ab97d [Sparc] Add support for 13-bit PIC
Summary: When compiling with -fpic, in contrast to -fPIC, use only the
immediate field to index into the GOT. This saves space if the GOT is
known to be small. The linker will warn if the GOT is too large for
this method.

Reviewers: jyknight, venkatra

Reviewed By: jyknight

Subscribers: brad, fedor.sergeev, jrtc27, llvm-commits

Differential Revision: https://reviews.llvm.org/D47136

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334383 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 05:50:08 +00:00
Brock Wyma 62178e9f4e [CodeView] Omit forward references for unnamed structs and unions
Codeview references to unnamed structs and unions are expected to refer to the
complete type definition instead of a forward reference so Visual Studio can
resolve the type properly.

Differential Revision: https://reviews.llvm.org/D32498



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334382 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 01:39:34 +00:00
Craig Topper 1eda80d0b0 [X86] Remove and autoupgrade the expandload and compressstore intrinsics.
We use the target independent intrinsics now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334381 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-11 01:25:22 +00:00
Sanjay Patel 331074fceb [DAGCombiner] match vector compare and select sizes with extload operand (PR37427)
This patch started off much more general and ambitious, but it's been a nightmare 
seeing all the ways x86 vector codegen can go wrong.

So the code is still structured to allow extending easily, but it's currently 
limited in several ways:

1. Only handle cases with an extending load.
2. Only handle cases with a zero constant compare.
3. Ignore setcc with vector bitmask (SetCCWidth != 1) - so AVX512 should be unaffected.

The motivating case from PR37427:
https://bugs.llvm.org/show_bug.cgi?id=37427
...is the 1st test, and that shows the expected win - we eliminated the unnecessary 
intermediate cast.

There's a clear regression in the last test (sgt_zero_fp_select) because we longer 
recognize a 'SHRUNKBLEND' opportunity. I think that general problem is also present 
in sgt_zero, so I'll try to fix that in a follow-up. We need to match a sign-bit 
setcc from a sign-extended operand and remove it.

Differential Revision: https://reviews.llvm.org/D47330


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334378 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 23:09:50 +00:00
Roman Lebedev bd27672ab4 Revert rL334371 / D47980: "[InstCombine] Fold (x << y) >> y -> x & (-1 >> y)"
test/Transforms/InstCombine/AMDGPU/amdgcn-intrinsics.ll broke,
and i did not notice because i did not build that backend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334373 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 20:32:03 +00:00
Roman Lebedev 67d1bbfc43 [InstCombine] Fold (x >> y) << y -> x & (-1 << y)
Summary:
We already do it for matching splat constants, but not just values.

Further improvements for non-matching splat constants, as noted in
https://reviews.llvm.org/D46760#1123713 will be needed,
but i'd prefer to do that as a follow-up.

https://bugs.llvm.org/show_bug.cgi?id=37603
https://rise4fun.com/Alive/cplX
https://rise4fun.com/Alive/0HF

Reviewers: spatel, craig.topper

Reviewed By: spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D47981

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334372 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 20:10:13 +00:00
Roman Lebedev 69d7a86407 [InstCombine] Fold (x << y) >> y -> x & (-1 >> y)
Summary:
We already do it for splat constants, but not just values.
Also, undef cases are mostly non-functional.

https://bugs.llvm.org/show_bug.cgi?id=37603
https://rise4fun.com/Alive/cplX

Reviewers: spatel, craig.topper

Reviewed By: spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D47980

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334371 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 20:10:06 +00:00
Roman Lebedev 963769c286 [NFC][InstCombine] Revisit tests for D47980 / D47981 once more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334370 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 20:10:00 +00:00
Craig Topper 62f18f97c7 [X86] Add expandload and compresstore fast-isel tests for avx512f and avx512vl. Update existing tests for avx512vbmi2 to use target independent intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334368 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 18:55:37 +00:00
Sanjay Patel 45f382c290 [x86] add tests for potentially miscompiling cvttp2si (PR37751); NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334367 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 17:42:12 +00:00
Ivan A. Kosarev c7f180e8c4 [NEON] Support VST1xN intrinsics in AArch32 mode (LLVM part)
We currently support them only in AArch64. The NEON Reference,
however, says they are 'ARMv7, ARMv8' intrinsics.

Differential Revision: https://reviews.llvm.org/D47447


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334361 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 09:27:27 +00:00
Craig Topper c5b8bcad3b [X86] Fix forward declaration in a test case that was messed up in r334358
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334360 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 06:43:48 +00:00
Craig Topper edd46a8e79 [X86] Remove masking from the 512-bit masked floating point add/sub/mul/div intrinsics. Use a select in IR instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334358 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-10 06:01:36 +00:00
Simon Pilgrim 0c500a83b4 [CostModel][X86] Add 'select' style shuffle costs tests (PR33744)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334351 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-09 16:08:25 +00:00
Roman Lebedev 1afb7bca16 [NFC][InstCombine] More tests for (x >> y) << y -> x & (-1 << y) fold.
Followup for rL334347.
The fold is also valid for ashr.
https://rise4fun.com/Alive/0HF

https://bugs.llvm.org/show_bug.cgi?id=37603
https://reviews.llvm.org/D46760#1123713
https://rise4fun.com/Alive/cplX

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334349 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-09 14:01:46 +00:00
Roman Lebedev 60e082b13f [NFC][InstCombine] Tests for (x >> y) << y -> x & (-1 << y) fold.
We already do it for splat constants, but not just values.
Also, undef cases are mostly non-functional.

https://bugs.llvm.org/show_bug.cgi?id=37603
https://reviews.llvm.org/D46760#1123713
https://rise4fun.com/Alive/cplX

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334347 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-09 09:27:43 +00:00
Roman Lebedev 7e8494f5c2 [NFC][InstCombine] Tests for (x << y) >> y -> x & (-1 >> y) fold.
We already do it for splat constants, but not just values.
Also, undef cases are mostly non-functional.

https://bugs.llvm.org/show_bug.cgi?id=37603
https://rise4fun.com/Alive/cplX

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334346 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-09 09:27:39 +00:00
Eli Friedman 09c10d86a8 [ARM] Allow CMPZ transforms even if the input has multiple uses.
It looks like this got left in by accident in r289794; I can't think of
any reason this check would be necessary.  (Maybe it was meant to be a
check that the AND has one use? But we check that a few lines earlier.)

Differential Revision: https://reviews.llvm.org/D47921



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334322 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 21:16:56 +00:00
Krzysztof Parzyszek 4b6d3f98cd [SCEV] Look through zero-extends in howFarToZero
An expression like
  (zext i2 {(trunc i32 (1 + %B) to i2),+,1}<%while.body> to i32)
will become zero exactly when the nested value becomes zero in its type.
Strip injective operations from the input value in howFarToZero to make
the value simpler.

Differential Revision: https://reviews.llvm.org/D47951


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334318 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 20:43:07 +00:00
Davide Italiano 50f05d394a [InstCombine] Skip dbg.value(s) when looking at stack{save,restore}.
Fixes PR37713.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334317 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 20:42:36 +00:00
Sanjay Patel 34d605cb16 [InstCombine] add llvm.assume + debuginfo test (PR37726); NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334314 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 18:47:33 +00:00
Reid Kleckner 98c78e82f5 [asan] Instrument comdat globals on COFF targets
Summary:
If we can use comdats, then we can make it so that the global metadata
is thrown away if the prevailing definition of the global was
uninstrumented. I have only tested this on COFF targets, but in theory,
there is no reason that we cannot also do this for ELF.

This will allow us to re-enable string merging with ASan on Windows,
reducing the binary size cost of ASan on Windows.

Reviewers: eugenis, vitalybuka

Subscribers: hiraditya, llvm-commits

Differential Revision: https://reviews.llvm.org/D47841

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334313 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 18:33:16 +00:00
Simon Pilgrim a735ba5b79 [X86][SSE] Support v8i16/v16i16 rotations
Extension to D46954 (PR37426), this patch adds support for v8i16/v16i16 rotations in a similar manner - the conversion of the shift/rotate amount to a multiplication factor and the use of PMULLW to shift left and PMULHUW (ISD::MULHU) to shift the wrapped bits back around to be ORd together.

Differential Revision: https://reviews.llvm.org/D47822

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334309 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 17:58:42 +00:00
Sanjay Patel 1503b9f6fe [x86] add tests for node-level FMF; NFC
These cases should be optimized using the change from D47911.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334308 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 17:54:28 +00:00
Sanjay Patel 4a49826736 [x86] regenerate test checks; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334307 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 17:42:35 +00:00
Michael Berg 27c4e626a1 Utilize new SDNode flag functionality to expand current support for fsub
Summary: This patch originated from D46562 and is a proper subset, with some issues addressed for fsub.

Reviewers: spatel, hfinkel, wristow, arsenm

Reviewed By: spatel

Subscribers: wdng

Differential Revision: https://reviews.llvm.org/D47910

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334306 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 17:39:50 +00:00
Simon Pilgrim 63f4875014 [X86][BtVer2] Add support for all SUB/XOR 32/64 scalar instructions that should match the dependency-breaking 'zero-idiom'
As detailed on Agner's Microarchitecture doc (21.8 AMD Bobcat and Jaguar pipeline - Dependency-breaking instructions), these instructions are dependency breaking and fast-path zero the destination register (and appropriate EFLAGS bits).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334303 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 17:00:45 +00:00
Simon Pilgrim 2251f252be [X86] Fix schedule-x86_64.s tests to use different registers in reg-reg cases
Same fix as rL334110: I noticed while working on zero-idiom + dependency-breaking support (PR36671) that most of our binary instruction schedule tests were reusing the same src registers, which would cause the tests to fail once we enable scalar zero-idiom support on btver2.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334302 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 16:40:15 +00:00
Daniil Fukalov 8fbd41bc43 [AMDGPU] Inline asm - added i16, half and i128 types support
AMDGPU inline assembler support i16, half and i128 typed variables in constraints, but they were reported as error.
Needed to fix https://github.com/RadeonOpenCompute/ROCm/issues/341,
e.g. to be able to load with global_load_dwordx4 to a 128bit integer variable

Differential Revision: https://reviews.llvm.org/D44920

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334301 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 16:29:04 +00:00
Daniil Fukalov a3fe40f2b0 reapply r334209 with fixes for harfbuzz in Chromium
r334209 description:
[LSR] Check yet more intrinsic pointer operands

the patch fixes another assertion in isLegalUse()

Differential Revision: https://reviews.llvm.org/D47794

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334300 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 16:22:52 +00:00
Roman Lebedev b76b2440ec [InstSimplify] add nuw %x, -1 -> -1 fold.
Summary:
`%ret = add nuw i8 %x, C`
From [[ https://llvm.org/docs/LangRef.html#add-instruction | langref ]]:
    nuw and nsw stand for “No Unsigned Wrap” and “No Signed Wrap”,
    respectively. If the nuw and/or nsw keywords are present,
    the result value of the add is a poison value if unsigned
    and/or signed overflow, respectively, occurs.

So if `C` is `-1`, `%x` can only be `0`, and the result is always `-1`.

I'm not sure we want to use `KnownBits`/`LVI` here, because there is
exactly one possible value (all bits set, `-1`), so some other pass
should take care of replacing the known-all-ones with constant `-1`.

The `test/Transforms/InstCombine/set-lowbits-mask-canonicalize.ll` change *is* confusing.
What happening is, before this: (omitting `nuw` for simplicity)
1. First, InstCombine D47428/rL334127 folds `shl i32 1, %NBits`) to `shl nuw i32 -1, %NBits`
2. Then, InstSimplify D47883/rL334222 folds `shl nuw i32 -1, %NBits` to `-1`,
3. `-1` is inverted to `0`.
But now:
1. *This* InstSimplify fold `%ret = add nuw i32 %setbit, -1` -> `-1` happens first,
   before InstCombine D47428/rL334127 fold could happen.
Thus we now end up with the opposite constant,
and it is all good: https://rise4fun.com/Alive/OA9

https://rise4fun.com/Alive/sldC
Was mentioned in D47428 review.
Follow-up for D47883.

Reviewers: spatel, craig.topper

Reviewed By: spatel

Subscribers: llvm-commits

Differential Revision: https://reviews.llvm.org/D47908

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334298 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 15:44:47 +00:00
Simon Pilgrim 21448274b7 [X86][BtVer2] Remove SBB tests that were accidentally added in rL334296
These aren't true zero-idiom instructions (just dependency breaking).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334297 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 15:43:00 +00:00
Simon Pilgrim 0197608901 [X86][BtVer2] Add tests for scalar SUB/XOR instructions that should match the dependency-breaking 'zero-idiom'
As detailed on Agner's Microarchitecture doc (21.8 AMD Bobcat and Jaguar pipeline - Dependency-breaking instructions).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@334296 91177308-0d34-0410-b5e6-96231b3b80d8
2018-06-08 15:28:43 +00:00