diff options
author | Andrew Lenharth <andrewl@lenharth.org> | 2006-07-03 22:46:02 +0000 |
---|---|---|
committer | Andrew Lenharth <andrewl@lenharth.org> | 2006-07-03 22:46:02 +0000 |
commit | ddb1304660c43083aab1c4f19c33774bf4182a9a (patch) | |
tree | 189bb76b0b2ed95be0bc393212f6443e9cefe760 /test/CodeGen/Alpha | |
parent | 441a57041d9b381f3ffbcac18dd66b46da680efd (diff) | |
download | external_llvm-ddb1304660c43083aab1c4f19c33774bf4182a9a.zip external_llvm-ddb1304660c43083aab1c4f19c33774bf4182a9a.tar.gz external_llvm-ddb1304660c43083aab1c4f19c33774bf4182a9a.tar.bz2 |
Legalize does not handle this correctly
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28991 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/Alpha')
-rw-r--r-- | test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll b/test/CodeGen/Alpha/2006-07-03-ASMFormalLowering.ll new file mode 100644 index 0000000..be3d3e7 --- /dev/null +++ b/test/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 +} |