[Sparc] Implement i64 load/store support for 32-bit sparc.
[oota-llvm.git] / test / CodeGen / SPARC / basictest.ll
index 7b540074a35f926b2c25ebd217e2f6c2f5cdd684..3f5dfda9ad19dbae9f5704f09417379cac6099f3 100644 (file)
@@ -38,7 +38,7 @@ entry:
 
 ; CHECK-LABEL: signed_divide:
 ; CHECK: sra %o0, 31, %o2
-; CHECK: wr %o2, %g0, %y
+; CHECK: wr %g0, %o2, %y
 ; CHECK: sdiv %o0, %o1, %o0
 define i32 @signed_divide(i32 %a, i32 %b) {
   %r = sdiv i32 %a, %b
@@ -84,3 +84,16 @@ define i64 @unsigned_multiply_32x32_64(i32 %a, i32 %b) {
   ret i64 %r
 }
 
+; CHECK-LABEL: load_store_64bit:
+; CHECK: ldd [%o0], %o2
+; CHECK: addcc %o3, 3, %o5
+; CHECK: addxcc %o2, 0, %o4
+; CHECK: retl
+; CHECK: std %o4, [%o1]
+define void @load_store_64bit(i64* %x, i64* %y) {
+entry:
+  %0 = load i64, i64* %x
+  %add = add nsw i64 %0, 3
+  store i64 %add, i64* %y
+  ret void
+}