The Mips specific inline asm operand modifier 'z' has the
[oota-llvm.git] / test / CodeGen / Mips / inlineasm-operand-code.ll
1 ; Positive test for inline register constraints
2 ;
3 ; RUN: llc -march=mipsel < %s  | FileCheck %s
4
5 define i32 @main() nounwind {
6 entry:
7
8 ; X with -3
9 ;CHECK: #APP
10 ;CHECK: addi ${{[0-9]+}},${{[0-9]+}},0xfffffffffffffffd
11 ;CHECK: #NO_APP
12   tail call i32 asm sideeffect "addi $0,$1,${2:X}", "=r,r,I"(i32 7, i32 -3) nounwind
13
14 ; x with -3
15 ;CHECK: #APP
16 ;CHECK: addi ${{[0-9]+}},${{[0-9]+}},0xfffd
17 ;CHECK: #NO_APP
18   tail call i32 asm sideeffect "addi $0,$1,${2:x}", "=r,r,I"(i32 7, i32 -3) nounwind
19
20 ; d with -3
21 ;CHECK: #APP
22 ;CHECK: addi ${{[0-9]+}},${{[0-9]+}},-3
23 ;CHECK: #NO_APP
24   tail call i32 asm sideeffect "addi $0,$1,${2:d}", "=r,r,I"(i32 7, i32 -3) nounwind
25
26 ; m with -3
27 ;CHECK: #APP
28 ;CHECK: addi ${{[0-9]+}},${{[0-9]+}},-4
29 ;CHECK: #NO_APP
30   tail call i32 asm sideeffect "addi $0,$1,${2:m}", "=r,r,I"(i32 7, i32 -3) nounwind
31
32 ; z with -3
33 ;CHECK: #APP
34 ;CHECK: addi ${{[0-9]+}},${{[0-9]+}},-3
35 ;CHECK: #NO_APP
36   tail call i32 asm sideeffect "addi $0,$1,${2:z}", "=r,r,I"(i32 7, i32 -3) nounwind
37
38 ; z with 0
39 ;CHECK: #APP
40 ;CHECK: addi ${{[0-9]+}},${{[0-9]+}},$0
41 ;CHECK: #NO_APP
42   tail call i32 asm sideeffect "addi $0,$1,${2:z}", "=r,r,I"(i32 7, i32 0) nounwind
43
44   ret i32 0
45 }