summaryrefslogtreecommitdiff
path: root/test/MC/AArch64/neon-bitwise-instructions.s
blob: 949d1b14ffc36635a0917113a1044d70eb88f6b4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// RUN: llvm-mc -triple aarch64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s
// RUN: llvm-mc -triple arm64-none-linux-gnu -mattr=+neon -show-encoding < %s | FileCheck %s

// Check that the assembler can handle the documented syntax for AArch64

//------------------------------------------------------------------------------
// Vector And
//------------------------------------------------------------------------------
         and v0.8b, v1.8b, v2.8b
         and v0.16b, v1.16b, v2.16b

// CHECK: and v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x22,0x0e]
// CHECK: and v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x22,0x4e]


//------------------------------------------------------------------------------
// Vector Orr
//------------------------------------------------------------------------------
         orr v0.8b, v1.8b, v2.8b
         orr v0.16b, v1.16b, v2.16b

// CHECK: orr v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xa2,0x0e]
// CHECK: orr v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xa2,0x4e]


//------------------------------------------------------------------------------
// Vector Eor
//------------------------------------------------------------------------------
         eor v0.8b, v1.8b, v2.8b
         eor v0.16b, v1.16b, v2.16b

// CHECK: eor v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x22,0x2e]
// CHECK: eor v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x22,0x6e]


//----------------------------------------------------------------------
// Vector Bitwise
//----------------------------------------------------------------------

         bit v0.8b, v1.8b, v2.8b
         bit v0.16b, v1.16b, v2.16b
         bif v0.8b, v1.8b, v2.8b
         bif v0.16b, v1.16b, v2.16b
         bsl v0.8b, v1.8b, v2.8b
         bsl v0.16b, v1.16b, v2.16b
         orn v0.8b, v1.8b, v2.8b
         orn v0.16b, v1.16b, v2.16b
         bic v0.8b, v1.8b, v2.8b
         bic v0.16b, v1.16b, v2.16b

// CHECK: bit v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xa2,0x2e]
// CHECK: bit v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xa2,0x6e]
// CHECK: bif v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xe2,0x2e]
// CHECK: bif v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xe2,0x6e]
// CHECK: bsl v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x62,0x2e]
// CHECK: bsl v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x62,0x6e]
// CHECK: orn v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0xe2,0x0e]
// CHECK: orn v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0xe2,0x4e]
// CHECK: bic v0.8b, v1.8b, v2.8b        // encoding: [0x20,0x1c,0x62,0x0e]
// CHECK: bic v0.16b, v1.16b, v2.16b     // encoding: [0x20,0x1c,0x62,0x4e]