xref: /aosp_15_r20/external/llvm/test/MC/AArch64/arm64-separator.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker; RUN: llvm-mc -triple arm64-apple-darwin -show-encoding < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker
3*9880d681SAndroid Build Coastguard Worker; ARM64 uses a multi-character statement separator, "%%". Check that we lex
4*9880d681SAndroid Build Coastguard Worker; it properly and recognize the multiple assembly statements on the line.
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker; To make sure the output assembly correctly handled the instructions,
7*9880d681SAndroid Build Coastguard Worker; tell it to show encodings. That will result in the two 'mov' instructions
8*9880d681SAndroid Build Coastguard Worker; being on separate lines in the output. We look for the "; encoding" string
9*9880d681SAndroid Build Coastguard Worker; to verify that. For this test, we don't care what the encoding is, just that
10*9880d681SAndroid Build Coastguard Worker; there is one for each 'mov' instruction.
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker_foo:
14*9880d681SAndroid Build Coastguard Worker; CHECK: foo
15*9880d681SAndroid Build Coastguard Worker; CHECK: mov x0, x1 ; encoding
16*9880d681SAndroid Build Coastguard Worker; CHECK: mov x1, x0 ; encoding
17*9880d681SAndroid Build Coastguard Worker	mov x0, x1 %% mov x1, x0
18*9880d681SAndroid Build Coastguard Worker	ret	lr
19*9880d681SAndroid Build Coastguard Worker
20*9880d681SAndroid Build Coastguard Worker
21