summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorDale Johannesen <dalej@apple.com>2010-07-13 20:17:05 +0000
committerDale Johannesen <dalej@apple.com>2010-07-13 20:17:05 +0000
commitcaca5488dc290c3cbca702a90e3f7a8be7b23c06 (patch)
treea373ca274f795fc1eedb96ef98c6f34aa0680529 /llvm/test
parent117b01b2da9b1e3aa4bcd89a2d9e6c594d7bf4ab (diff)
downloadbcm5719-llvm-caca5488dc290c3cbca702a90e3f7a8be7b23c06.tar.gz
bcm5719-llvm-caca5488dc290c3cbca702a90e3f7a8be7b23c06.zip
In inline asm treat indirect 'X' constraint as 'm'.
This may not be right in all cases, but it's better than asserting which it was doing before. PR 7528. llvm-svn: 108268
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/X86/2010-07-13-indirectXconstraint.ll18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/2010-07-13-indirectXconstraint.ll b/llvm/test/CodeGen/X86/2010-07-13-indirectXconstraint.ll
new file mode 100644
index 00000000000..97cbe3ea5a0
--- /dev/null
+++ b/llvm/test/CodeGen/X86/2010-07-13-indirectXconstraint.ll
@@ -0,0 +1,18 @@
+; RUN: llc < %s -mtriple=x86_64-apple-darwin | FileCheck %s
+; PR 7528
+; formerly crashed
+
+%0 = type { [12 x i16] }
+%union..0anon = type { [3 x <1 x i64>] }
+
+@gsm_H.1466 = internal constant %0 { [12 x i16] [i16 -134, i16 -374, i16 0, i16 2054, i16 5741, i16 8192, i16 5741, i16 2054, i16 0, i16 -374, i16 -134, i16 0] }, align 8 ; <%0*> [#uses=1]
+
+define void @weighting_filter() nounwind ssp {
+entry:
+; CHECK: leaq _gsm_H.1466(%rip),%rax;
+ call void asm sideeffect "leaq $0,%rax;\0A", "*X,~{dirflag},~{fpsr},~{flags},~{memory},~{rax}"(%union..0anon* bitcast (%0* @gsm_H.1466 to %union..0anon*)) nounwind
+ br label %return
+
+return: ; preds = %entry
+ ret void
+}
OpenPOWER on IntegriCloud