diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2013-12-22 00:04:03 +0000 |
commit | f8af5cf600354830d4ccf59732403f0f073eccb9 (patch) | |
tree | 2ba0398b4c42ad4f55561327538044fd2c925a8b /test/CodeGen/Mips/msa/inline-asm.ll | |
parent | 59d6cff90eecf31cb3dd860c4e786674cfdd42eb (diff) |
Diffstat (limited to 'test/CodeGen/Mips/msa/inline-asm.ll')
-rw-r--r-- | test/CodeGen/Mips/msa/inline-asm.ll | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/CodeGen/Mips/msa/inline-asm.ll b/test/CodeGen/Mips/msa/inline-asm.ll new file mode 100644 index 0000000000000..4a34273f3c00c --- /dev/null +++ b/test/CodeGen/Mips/msa/inline-asm.ll @@ -0,0 +1,34 @@ +; A basic inline assembly test + +; RUN: llc -march=mips -mattr=+msa,+fp64 < %s | FileCheck %s + +@v4i32_r = global <4 x i32> zeroinitializer, align 16 + +define void @test1() nounwind { +entry: + ; CHECK-LABEL: test1: + %0 = call <4 x i32> asm "ldi.w ${0:w}, 1", "=f"() + ; CHECK: ldi.w $w{{[1-3]?[0-9]}}, 1 + store <4 x i32> %0, <4 x i32>* @v4i32_r + ret void +} + +define void @test2() nounwind { +entry: + ; CHECK-LABEL: test2: + %0 = load <4 x i32>* @v4i32_r + %1 = call <4 x i32> asm "addvi.w ${0:w}, ${1:w}, 1", "=f,f"(<4 x i32> %0) + ; CHECK: addvi.w $w{{[1-3]?[0-9]}}, $w{{[1-3]?[0-9]}}, 1 + store <4 x i32> %1, <4 x i32>* @v4i32_r + ret void +} + +define void @test3() nounwind { +entry: + ; CHECK-LABEL: test3: + %0 = load <4 x i32>* @v4i32_r + %1 = call <4 x i32> asm sideeffect "addvi.w ${0:w}, ${1:w}, 1", "=f,f,~{$w0}"(<4 x i32> %0) + ; CHECK: addvi.w $w{{([1-9]|[1-3][0-9])}}, $w{{([1-9]|[1-3][0-9])}}, 1 + store <4 x i32> %1, <4 x i32>* @v4i32_r + ret void +} |