Daniel Sanders | 8b59af1 | 2013-11-12 12:56:01 +0000 | [diff] [blame] | 1 | ; A basic inline assembly test |
| 2 | |
| 3 | ; RUN: llc -march=mips -mattr=+msa,+fp64 < %s | FileCheck %s |
| 4 | |
| 5 | @v4i32_r = global <4 x i32> zeroinitializer, align 16 |
| 6 | |
| 7 | define void @test1() nounwind { |
| 8 | entry: |
| 9 | ; CHECK-LABEL: test1: |
| 10 | %0 = call <4 x i32> asm "ldi.w ${0:w}, 1", "=f"() |
| 11 | ; CHECK: ldi.w $w{{[1-3]?[0-9]}}, 1 |
| 12 | store <4 x i32> %0, <4 x i32>* @v4i32_r |
| 13 | ret void |
| 14 | } |
| 15 | |
| 16 | define void @test2() nounwind { |
| 17 | entry: |
| 18 | ; CHECK-LABEL: test2: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 19 | %0 = load <4 x i32>, <4 x i32>* @v4i32_r |
Daniel Sanders | 8b59af1 | 2013-11-12 12:56:01 +0000 | [diff] [blame] | 20 | %1 = call <4 x i32> asm "addvi.w ${0:w}, ${1:w}, 1", "=f,f"(<4 x i32> %0) |
| 21 | ; CHECK: addvi.w $w{{[1-3]?[0-9]}}, $w{{[1-3]?[0-9]}}, 1 |
| 22 | store <4 x i32> %1, <4 x i32>* @v4i32_r |
| 23 | ret void |
| 24 | } |
| 25 | |
| 26 | define void @test3() nounwind { |
| 27 | entry: |
| 28 | ; CHECK-LABEL: test3: |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 29 | %0 = load <4 x i32>, <4 x i32>* @v4i32_r |
Daniel Sanders | 8b59af1 | 2013-11-12 12:56:01 +0000 | [diff] [blame] | 30 | %1 = call <4 x i32> asm sideeffect "addvi.w ${0:w}, ${1:w}, 1", "=f,f,~{$w0}"(<4 x i32> %0) |
| 31 | ; CHECK: addvi.w $w{{([1-9]|[1-3][0-9])}}, $w{{([1-9]|[1-3][0-9])}}, 1 |
| 32 | store <4 x i32> %1, <4 x i32>* @v4i32_r |
| 33 | ret void |
| 34 | } |