summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2015-03-17 22:55:01 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2015-03-17 22:55:01 +0000
commitc085eca17626f117018500eb4d67368c4ada87f7 (patch)
tree05dc0287ee7810aae00ca4053b2c9e4d884c02f4 /llvm/lib
parent85bc48ca744bb531576109631df36355f64daee7 (diff)
downloadbcm5719-llvm-c085eca17626f117018500eb4d67368c4ada87f7.tar.gz
bcm5719-llvm-c085eca17626f117018500eb4d67368c4ada87f7.zip
Appease AArch64ISelLowering.cpp miscompiled by g++-4.7.2.
I will revert this when 4.7.3 is ready. llvm-svn: 232561
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/AArch64/AArch64ISelLowering.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index f1073beb32f..464f56780df 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -7201,6 +7201,12 @@ static SDValue performConcatVectorsCombine(SDNode *N,
(N00VT == MVT::v2i64 || N00VT == MVT::v4i32) &&
N00VT.getScalarSizeInBits() == 4 * VT.getScalarSizeInBits()) {
MVT MidVT = (N00VT == MVT::v2i64 ? MVT::v2i32 : MVT::v4i16);
+#if defined(__GNUC__)
+#if __GNUC__ == 4 && __GNUC_MINOR__ == 7 && __GNUC_PATCHLEVEL__ == 2
+ // FIXME: g++-4.7.2 might miscompile PerformDAGCombine().
+ asm volatile("":::"memory");
+#endif
+#endif
MVT ConcatMidVT = MVT::getVectorVT(MidVT.getVectorElementType(),
MidVT.getVectorNumElements() * 2);
return DAG.getNode(
OpenPOWER on IntegriCloud