OSDN Git Service

Legalize does not handle this correctly
authorAndrew Lenharth <andrewl@lenharth.org>
Mon, 3 Jul 2006 22:46:02 +0000 (22:46 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Mon, 3 Jul 2006 22:46:02 +0000 (22:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28991 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll [new file with mode: 0644]

diff --git a/test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll b/test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll
new file mode 100644 (file)
index 0000000..be3d3e7
--- /dev/null
@@ -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
+}