xref: /aosp_15_r20/external/llvm/test/MC/Lanai/conditional_inst.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker! RUN: llvm-mc -arch=lanai -show-encoding -show-inst < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker.text
4*9880d681SAndroid Build Coastguard Worker   .align 4
5*9880d681SAndroid Build Coastguard Worker   .global jump1
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Worker    bt %r5
8*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0xc1,0x00,0x2d,0x00]
9*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} JR{{$}}
10*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Reg:12>>
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker! BR classes
13*9880d681SAndroid Build Coastguard Worker    bt 0x1234
14*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0xe0,0x00,0x12,0x34]
15*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} BT{{$}}
16*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:4660>
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Workerjump1:
19*9880d681SAndroid Build Coastguard Worker    blt 2000
20*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0xec,0x00,0x07,0xd1]
21*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
22*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:2000>
23*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:13>
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workerjump2:
26*9880d681SAndroid Build Coastguard Worker    blt jump1
27*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0b1110110A,A,A,0x01'A']
28*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: fixup A - offset: 0, value: jump1, kind: FIXUP_LANAI_25
29*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
30*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Expr:(jump1)>
31*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:13>
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Worker    bpl jump2
34*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0b1110101A,A,A,A]
35*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: fixup A - offset: 0, value: jump2, kind: FIXUP_LANAI_25
36*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} BRCC{{$}}
37*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Expr:(jump2)>
38*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:10>
39*9880d681SAndroid Build Coastguard Worker
40*9880d681SAndroid Build Coastguard Worker    bt .
41*9880d681SAndroid Build Coastguard Worker! CHECK:      .Ltmp{{[0-9]+}}
42*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:   bt .Ltmp{{[0-9]+}}
43*9880d681SAndroid Build Coastguard Worker! CHECK:      encoding: [0b1110000A,A,A,A]
44*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:   fixup A - offset: 0, value: .Ltmp0, kind: FIXUP_LANAI_25
45*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} BT{{$}}
46*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:   <MCOperand Expr:(.Ltmp0)>
47*9880d681SAndroid Build Coastguard Worker
48*9880d681SAndroid Build Coastguard Worker! SCC
49*9880d681SAndroid Build Coastguard Worker    spl %r19
50*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0xea,0x4c,0x00,0x02]
51*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} SCC{{$}}
52*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Reg:26>
53*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:10>
54*9880d681SAndroid Build Coastguard Worker
55*9880d681SAndroid Build Coastguard Worker! BRR
56*9880d681SAndroid Build Coastguard Worker    bf.r 0x456
57*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0xe1,0x00,0x04,0x57]
58*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} BRR{{$}}
59*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:1110>
60*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCOperand Imm:1>
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Worker! Conditional ALU
63*9880d681SAndroid Build Coastguard Worker  add.ge %r13, %r14, %r18
64*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0xc9,0x34,0x70,0x06]
65*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_R
66*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Reg:25>
67*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Reg:20>
68*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Reg:21>
69*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Imm:12>>
70*9880d681SAndroid Build Coastguard Worker
71*9880d681SAndroid Build Coastguard Worker  add.f %r13, %r14, %r18
72*9880d681SAndroid Build Coastguard Worker! CHECK: encoding: [0xc9,0x36,0x70,0x00]
73*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT: <MCInst #{{[0-9]+}} ADD_F_R
74*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Reg:25>
75*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Reg:20>
76*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Reg:21>
77*9880d681SAndroid Build Coastguard Worker! CHECK-NEXT:  <MCOperand Imm:0>>
78