149764 Commits

Author SHA1 Message Date
Jonas Paulsson
be57856cca [SystemZ] Fix register modelling in expandLoadStackGuard()
EXPENSIVE_CHECKS found this bug (https://bugs.llvm.org/show_bug.cgi?id=33047), which
this patch fixes. The EAR instruction defines a GR32, not a GR64.

Review: Ulrich Weigand

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303743 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 13:15:48 +00:00
Tamas Berghammer
b762e5bdbc Demangler: Fix constructor cv qualifier handling
Previously if we parsed a constructor then we set parsed_ctor_dtor_cv
to true and never reseted it. This causes issue when a template argument
references a constructor (e.g. type of lambda defined inside a
constructor) as we will have the parsed_ctor_dtor_cv flag set what will
cause issues when parsing later arguments.

Differential Revision: https://reviews.llvm.org/D33385
libcxxabi change: https://reviews.llvm.org/rL303737

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303738 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 11:29:02 +00:00
Simon Pilgrim
376361f40b Strip trailing whitespace. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303736 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 11:02:27 +00:00
Florian Hahn
d48d2155c2 [ARM] Remove ThumbTargetMachines. (NFC)
Summary:
Thumb code generation is controlled by ARMSubtarget and the concrete
ThumbLETargetMachine and ThumbBETargetMachine are not needed.

Eric Christopher suggested removing the unneeded target machines in
https://reviews.llvm.org/D33287.

I think it still makes sense to keep separate TargetMachines for big and
little endian as we probably do not want to have different endianess for
difference functions in a single compilation unit. The MIPS backend has
two separate TargetMachines for big and little endian as well. 

Reviewers: echristo, rengolin, kristof.beyls, t.p.northover

Reviewed By: echristo

Subscribers: aemerson, javed.absar, arichardson, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303733 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 10:18:57 +00:00
Mikael Holmen
3bfeab444d MachineCSE: Respect interblock physreg liveness
Summary:
This is a fix for PR32538. MachineCSE first looks at MO.isDead(), but
if it is not marked dead, MachineCSE still wants to do its own check
to see if it is trivially dead. This check for the trivial case
assumed that physical registers cannot be live out of a block.

Patch by Mattias Eriksson.

Reviewers: qcolombet, jbhateja

Reviewed By: qcolombet, jbhateja

Subscribers: jbhateja, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303731 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 09:35:23 +00:00
Max Kazantsev
c7e5bebc4a [SCEV] Do not fold dominated SCEVUnknown into AddRecExpr start
When folding arguments of AddExpr or MulExpr with recurrences, we rely on the fact that
the loop of our base recurrency is the bottom-lost in terms of domination. This assumption
may be broken by an expression which is treated as invariant, and which depends on a complex
Phi for which SCEVUnknown was created. If such Phi is a loop Phi, and this loop is lower than
the chosen AddRecExpr's loop, it is invalid to fold our expression with the recurrence.

Another reason why it might be invalid to fold SCEVUnknown into Phi start value is that unlike
other SCEVs, SCEVUnknown are sometimes position-bound. For example, here:

for (...) { // loop
  phi = {A,+,B}
}
X = load ...
Folding phi + X into {A+X,+,B}<loop> actually makes no sense, because X does not exist and cannot
exist while we are iterating in loop (this memory can be even not allocated and not filled by this moment).
It is only valid to make such folding if X is defined before the loop. In this case the recurrence {A+X,+,B}<loop>
may be existant.

This patch prohibits folding of SCEVUnknown (and those who use them) into the start value of an AddRecExpr,
if this instruction is dominated by the loop. Merging the dominating unknown values is still valid. Some tests that
relied on the fact that some SCEVUnknown should be folded into AddRec's are changed so that they no longer
expect such behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303730 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 08:52:18 +00:00
Daniel Sanders
6f7f2057b7 Explicitly set CPU and -slow-incdec to try to fix r303678's test on llvm-clang-x86_64-expensive-checks-win.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303727 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 07:02:37 +00:00
Craig Topper
9b5a22370e [APInt] Use std::end to avoid mentioning the size of a local buffer repeatedly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303726 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 07:00:55 +00:00
Daniel Sanders
3db1f7b146 Revert r303720: Tweak r303678's test to try to fix llvm-clang-x86_64-expensive-checks-win.
It doesn't fix that builder.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303721 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 06:44:55 +00:00
Daniel Sanders
69f6762057 Tweak r303678's test to try to fix llvm-clang-x86_64-expensive-checks-win.
I suspect this buildbot has slow-incdec set by default, most likely due to
the default CPU having this set. This feature bit can prevent optsize from
having an effect on this IR.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303720 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 06:05:14 +00:00
Javed Absar
e244393f0c [ARM] Add VLDx/VSTx sched defs for machine-schedulers. NFCI
This patch adds missing scheds for Neon VLDx/VSTx instructions.
This will help one write schedulers easier/faster in the future for ARM sub-targets.
Existing models will not affected by this patch.
Reviewed by: Renato Golin, Diana Picus
Differential Revision: https://reviews.llvm.org/D33120



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303717 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 05:32:48 +00:00
Davide Italiano
6ff9a78ce5 [NewGVN] Update additionalUsers when we simplify to a value.
Otherwise we don't revisit an instruction that could be simplified,
and when we verify, we discover there's something that changed, i.e.
what we had wasn't a maximal fixpoint.

Fixes PR32836.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303715 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 02:30:24 +00:00
Zachary Turner
819a5c68c5 Fix broken build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303711 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 00:35:32 +00:00
George Karpenkov
c49b255f5f Revert "Disable coverage opt-out for strong postdominator blocks."
This reverts commit 2ed06f05fc10869dd1239cff96fcdea2ee8bf4ef.
Buildbots do not like this on Linux.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303710 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 00:29:12 +00:00
George Karpenkov
5262071914 Revert "Fixes for tests for r303698"
This reverts commit 69bfaf72e7502eb08bbca88a57925fa31c6295c6.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303709 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 00:29:08 +00:00
Zachary Turner
69916e12b3 git-llvm script should add .exe on Windows.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303708 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 00:28:46 +00:00
Zachary Turner
d448c732cb Don't do a full scan of the type stream before processing records.
LazyRandomTypeCollection is designed for random access, and in
order to provide this it lazily indexes ranges of types.  In the
case of types from an object file, there is no partial index
to build off of, so it has to index the full stream up front.
However, merging types only requires sequential access, and when
that is needed, this extra work is simply wasted.  Changing the
algorithm to work on sequential arrays of types rather than
random access type collections eliminates this up front scan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303707 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-24 00:26:27 +00:00
Davide Italiano
587030b4f5 [SCCP] Use the hasAddressTaken() version defined in Function.
Instead of using the SCCP homegrown one. We should eventually
make the private SCCP version disappear, but that wont' be today.
PR33143 tracks this issue.

Add braces for consistency while here. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303706 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 23:59:23 +00:00
Davide Italiano
1c4a508c0d [LIR] Use the newly getRecurrenceVar() helper. NFCI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303704 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 23:51:54 +00:00
George Karpenkov
1f57bbafaf Fixes for tests for r303698
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303701 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 22:42:34 +00:00
Davide Italiano
d2258c9d50 [LIR] Strengthen the check for recurrence variable in popcnt/CTLZ.
Fixes PR33114.
Differential Revision:  https://reviews.llvm.org/D33420

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303700 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 22:32:56 +00:00
George Karpenkov
fe601fedc1 Disable coverage opt-out for strong postdominator blocks.
Coverage instrumentation has an optimization not to instrument extra
blocks, if the pass is already "accounted for" by a
successor/predecessor basic block.
However (https://github.com/google/sanitizers/issues/783) this
reasoning may become circular, which stops valid paths from having
coverage.
In the worst case this can cause fuzzing to stop working entirely.

This change simplifies logic to something which trivially can not have
such circular reasoning, as losing valid paths does not seem like a
good trade-off for a ~15% decrease in the # of instrumented basic blocks.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303698 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:58:54 +00:00
Tim Northover
f226a627f9 Revert LLVM changes for "Sema: allow imaginary constants via GNU extension if UDL overloads not present."
The changes accidentally crept into a Clang commit I was making.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303697 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:53:11 +00:00
Rui Ueyama
30395dd637 [git-llvm] Check if svn is installed.
The error message that git-llvm script prints out when svn is missing
is very cryptic. I spent a fair amount of time to find what was wrong
with my environment. It looks like many newcomers also exprienced a
hard time to submit their first patches due to this error.

This patch adds a more user-friendly error message.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303696 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:50:40 +00:00
Vadzim Dambrouski
50bd917fab [MSP430] Add subtarget features for hardware multiplier.
Also add more processors to make -mcpu option behave similar to gcc.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303695 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:49:42 +00:00
Tim Northover
5be8b939f0 Sema: allow imaginary constants via GNU extension if UDL overloads not present.
C++14 added user-defined literal support for complex numbers so that you can
write something like "complex<double> val = 2i". However, there is an existing
GNU extension supporting this syntax and interpreting the result as a _Complex
type.

This changes parsing so that such literals are interpreted in terms of C++14's
operators if an overload is present but otherwise falls back to the original
GNU extension.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303694 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:41:49 +00:00
Reid Kleckner
b9f9e91ad0 Silence MSVC warning about unsigned integer overflow, which has defined behavior
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303693 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:35:32 +00:00
Francis Visoiu Mistrih
78c24559f4 abtest: remove duplicate script
This is fixing a mistake from r303690.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303692 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:28:41 +00:00
Simon Pilgrim
6b1d32c6d7 [AMDGPU] Add INDIRECT_BASE_ADDR to R600_Reg32 class (PR33045)
This fixes 17 of the 41 -verify-machineinstrs test failures identified in PR33045

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303691 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:27:15 +00:00
Francis Visoiu Mistrih
3a50f77d96 AsmPrinter: mark the beginning and the end of a function in verbose mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303690 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 21:22:16 +00:00
Tom Stellard
59b664b197 merge-request.sh: Use https url for bugzilla
With the http url, the script fails with:

Connection lost/failed: 411 Client Error: Length Required

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303685 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 20:35:38 +00:00
Changpeng Fang
6b7bd0e1f9 AMDGPU/SI: Move the local memory usage related checking after calling convention checking in PromoteAlloca
Summary:
  Promoting Alloca to Vector and Promoting Alloca to LDS are two independent handling of Alloca and should not affect each other.
As a result, we should not give up promoting to vector if there is not enough LDS. This patch factors out the local memory usage
related checking out and replace it after the calling convention checking.

Reviewer:
  arsenm

Differential Revision:
  http://reviews.llvm.org/D33139

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303684 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 20:25:41 +00:00
Daniel Sanders
8eeef874d9 Fix unused variable warnings after r303678
This should fix lld-x86_64-darwin13



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303683 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 20:02:48 +00:00
Geoff Berry
d3994aa571 [AArch64][Falkor] Refine sched details for LSLfast/ASRfast.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303682 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 19:57:45 +00:00
Stanislav Mekhanoshin
6ff1a723f7 [AMDGPU] Combine and (srl) into shl (bfe)
Perform DAG combine:
and (srl x, c), mask => shl (bfe x, nb + c, mask >> nb), nb
Where nb is a number of trailing zeroes in mask.

It replaces two instructions with two and BFE is generally a more
expensive one. However this is only done if we are selecting a byte
or word at an aligned boundary which results in a proper SDWA
operand pattern. It is only done if SDWA is supported.

TODO: improve SDWA pass to actually convert this pattern. It is not
done now because we have an immediate in the instruction, which has
be moved into a VGPR.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303681 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 19:54:48 +00:00
Geoff Berry
bcb35301da [AArch64][Falkor] Fix sched details for FMOV of WZR/XZR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303680 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 19:54:28 +00:00
Oleg Ranevskyy
4868a15090 [ARM] Temporarily disable globals promotion to constant pools to prevent miscompilation
Summary:
A temporary workaround for PR32780 - rematerialized instructions accessing the same promoted global through different constant pool entries.

The patch turns off the globals promotion optimization leaving all its code in place, so that it can be easily turned on once PR32780 is fixed.

Since this is a miscompilation issue causing generation of misbehaving code, and the problem is very subtle, the patch might be valuable enough to get into 4.0.1.

Reviewers: efriedma, jmolloy

Reviewed By: efriedma

Subscribers: aemerson, javed.absar, llvm-commits, rengolin, asl, tstellar

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303679 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 19:38:37 +00:00
Daniel Sanders
50acddba23 [globalisel][tablegen] Add support for (set $dst, 1) and test X86's OptForSize predicate.
Summary:
It's rare but a small number of patterns use IntInit's at the root of the match.
On X86, one such rule is enabled by the OptForSize predicate and causes the
compiler to use the smaller:
	%0 = MOV32r1
instead of the usual:
	%0 = MOV32ri 1

This patch adds support for matching IntInit's at the root and uses this as a
test case for the optsize attribute that was implemented in r301750

Reviewers: qcolombet, ab, t.p.northover, rovka, kristof.beyls, aditya_nandakumar

Reviewed By: qcolombet

Subscribers: igorb, llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303678 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 19:33:16 +00:00
Zachary Turner
87fb2325ec [CodeView] Eliminate redundant hashes and allocations.
When writing field list records, we would construct a temporary
type serializer that shared a bump ptr allocator with the rest
of the application, so anything allocated from here would live
forever.  Furthermore, this temporary serializer had all the
properties of a full blown serializer including record hashing
and de-duplication.

These features are required when you're merging multiple type
streams into each other, because different streams may contain
identical records, but records from the same type stream will
never collide with each other.  So all of this hashing was
unnecessary.

To solve this, two fixes are made:

1) The temporary serializer keeps its own bump ptr allocator
instead of sharing a global one.  When it's finished, all of
its memory is freed.

2) Instead of using the same temporary serializer for the life
of an entire type stream, we use it only for the life of a single
field list record and delete it when the field list record is
completed.  This way the hash table will not grow as other
records from the same type stream get inserted.  Further improvements
could eliminate hashing entirely from this codepath.

This reduces the link time by 85% in my test, from 1 minute to 9
seconds.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303676 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:56:23 +00:00
Nirav Dave
666fbb4259 [DAG] Add AddressSpace parameter to canMergeStoresTo. NFC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303673 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:53:02 +00:00
Craig Topper
cc7d8d02bb [InstSimplify] Add more tests for undef inputs and multiplying by 0 for the add/sub/mul with overflow intrinsics. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303671 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:42:58 +00:00
Yuka Takahashi
476b551be3 [GSoC] Shell autocompletion for clang
Summary:
This is a first patch for GSoC project, bash-completion for clang.
To use this on bash, please run `source clang/utils/bash-autocomplete.sh`.
bash-autocomplete.sh is code for bash-completion.

Simple flag completion and path completion is available in this patch.

Reviewers: teemperor, v.g.vassilev, ruiu, Bigcheese, efriedma

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303670 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:39:08 +00:00
David Blaikie
3a234a3d30 Fix DIEHash refactoring that dropped the DW_AT_name from the hash
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303669 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:36:07 +00:00
Nirav Dave
91b8ce247b [DAG] Add canMergeStoresTo predicate checks. NFCI.
Propagate canMergeStoresTo checks to missing cases in StoreMerge.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303668 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:33:09 +00:00
Reid Kleckner
2d1ebed099 Speculative build fix for non-Windows
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303667 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:28:13 +00:00
David Blaikie
e495804158 Refactor DWARF hashing to use a .def file to avoid repetition
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303666 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:27:09 +00:00
Reid Kleckner
9d053875b7 [PDB] Hash types up front when merging types instead of using StringMap
Summary:
First, StringMap uses llvm::HashString, which is only good for short
identifiers and really bad for large blobs of binary data like type
records. Moving to `DenseMap<StringRef, TypeIndex>` with some tricks for
memory allocation fixes that.

Unfortunately, that didn't buy very much performance. Profiling showed
that we spend a long time during DenseMap growth rehashing existing
entries. Also, in general, DenseMap is faster when the keys are small.
This change takes that to the logical conclusion by introducing a small
wrapper value type around a pointer to key data. The key data contains a
precomputed hash, the original record data (pointer and size), and the
type index, which is the "value" of our original map.

This reduces the time to produce llvm-as.exe and llvm-as.pdb from ~15s
on my machine to 3.5s, which is about a 4x improvement.

Reviewers: zturner, inglorion, ruiu

Subscribers: llvm-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303665 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 18:23:59 +00:00
Craig Topper
6ae2b02018 [InstSimplify] auto-generate test checks. NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303664 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 17:57:36 +00:00
Sanjay Patel
a7f9ccef01 [InstCombine] auto-generate test checks; NFC
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303663 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 17:51:22 +00:00
Sanjay Patel
3ee62c6930 [InstCombine] allow icmp-xor folds for vectors (PR33138)
This fixes the first part of:
https://bugs.llvm.org/show_bug.cgi?id=33138

More work is needed for the bitcasted variant.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303660 91177308-0d34-0410-b5e6-96231b3b80d8
2017-05-23 17:29:58 +00:00