summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/SPARC/LeonInsertNOPLoadPassUT.ll
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/CodeGen/SPARC/LeonInsertNOPLoadPassUT.ll')
-rwxr-xr-xllvm/test/CodeGen/SPARC/LeonInsertNOPLoadPassUT.ll43
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/SPARC/LeonInsertNOPLoadPassUT.ll b/llvm/test/CodeGen/SPARC/LeonInsertNOPLoadPassUT.ll
new file mode 100755
index 00000000000..57ae16227e7
--- /dev/null
+++ b/llvm/test/CodeGen/SPARC/LeonInsertNOPLoadPassUT.ll
@@ -0,0 +1,43 @@
+; RUN: llc %s -O0 -march=sparc -mcpu=ut699 -o - | FileCheck %s
+; RUN: llc %s -O0 -march=sparc -mcpu=leon3 -mattr=+insertnopload -o - | FileCheck %s
+
+; CHECK-LABEL: ld_float_test
+; CHECK: ld [%o0+%lo(.LCPI0_0)], %f0
+; CHECK-NEXT: nop
+define float @ld_float_test() #0 {
+entry:
+ %f = alloca float, align 4
+ store float 0x3FF3C08320000000, float* %f, align 4
+ %0 = load float, float* %f, align 4
+ ret float %0
+}
+
+; CHECK-LABEL: ld_i32_test
+; CHECK: ld [%o0], %o0
+; CHECK-NEXT: nop
+define i32 @ld_i32_test(i32 *%p) {
+ %res = load i32, i32* %p
+ ret i32 %res
+}
+
+; CHECK-LABEL: ld_inlineasm_test_1
+; CHECK: ld [%o0], %o0
+; CHECK-NEXT: !NO_APP
+; CHECK-NEXT: nop
+define float @ld_inlineasm_test_1(float* %a) {
+entry:
+ %res = tail call float asm sideeffect "ld [$1], $0", "=r,r"(float* %a)
+
+ ret float %res
+}
+
+; CHECK-LABEL: ld_inlineasm_test_2
+; CHECK: ld [%o0], %o0
+; CHECK-NEXT: !NO_APP
+; CHECK-NEXT: nop
+define i32 @ld_inlineasm_test_2(i32* %a) {
+entry:
+ %res = tail call i32 asm sideeffect "ld [$1], $0", "=r,r"(i32* %a)
+
+ ret i32 %res
+} \ No newline at end of file
OpenPOWER on IntegriCloud