summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Lenharth <andrewl@lenharth.org>2006-07-03 22:46:02 +0000
committerAndrew Lenharth <andrewl@lenharth.org>2006-07-03 22:46:02 +0000
commit3f3cc10d881de1a47efcf1d7a24ab32e94f33459 (patch)
treebe9b436aac7b68bdcf45c46c286d9f7e6a6ccad9
parent01078dc60b72bd5d762d1d6337fc0e184b8ce58c (diff)
downloadbcm5719-llvm-3f3cc10d881de1a47efcf1d7a24ab32e94f33459.tar.gz
bcm5719-llvm-3f3cc10d881de1a47efcf1d7a24ab32e94f33459.zip
Legalize does not handle this correctly
llvm-svn: 28991
-rw-r--r--llvm/test/Regression/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll21
1 files changed, 21 insertions, 0 deletions
diff --git a/llvm/test/Regression/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll b/llvm/test/Regression/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll
new file mode 100644
index 00000000000..be3d3e7b1ef
--- /dev/null
+++ b/llvm/test/Regression/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll
@@ -0,0 +1,21 @@
+;RUN: llvm-as < %s | llc -march=alpha
+
+; ModuleID = 'atomicity.cc'
+target endian = little
+target pointersize = 64
+target triple = "alphaev67-unknown-linux-gnu"
+
+implementation ; Functions:
+
+int %_ZN9__gnu_cxx18__exchange_and_addEPVii(int* %__mem, int %__val) {
+entry:
+ %__tmp = alloca int, align 4 ; <int*> [#uses=1]
+ %tmp3 = call int asm sideeffect "\0A$$Lxadd_0:\0A\09ldl_l $0,$3\0A\09addl $0,$4,$1\0A\09stl_c $1,$2\0A\09beq $1,$$Lxadd_0\0A\09mb", "=&r,==&r,==m,m,r"( int* %__tmp, int* %__mem, int* %__mem, int %__val ) ; <int> [#uses=1]
+ ret int %tmp3
+}
+
+void %_ZN9__gnu_cxx12__atomic_addEPVii(int* %__mem, int %__val) {
+entry:
+ %tmp2 = call int asm sideeffect "\0A$$Ladd_1:\0A\09ldl_l $0,$2\0A\09addl $0,$3,$0\0A\09stl_c $0,$1\0A\09beq $0,$$Ladd_1\0A\09mb", "=&r,==m,m,r"( int* %__mem, int* %__mem, int %__val ) ; <int> [#uses=0]
+ ret void
+}
OpenPOWER on IntegriCloud