brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.8 KiB · 4b28dd0 Raw
104 lines · plain
1// RUN: llvm-mc -triple=arm64 -mattr=+neon -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5//------------------------------------------------------------------------------6// Instructions for permute7//------------------------------------------------------------------------------8 9        uzp1 v0.8b, v1.8b, v2.8b10        uzp1 v0.16b, v1.16b, v2.16b11        uzp1 v0.4h, v1.4h, v2.4h12        uzp1 v0.8h, v1.8h, v2.8h13        uzp1 v0.2s, v1.2s, v2.2s14        uzp1 v0.4s, v1.4s, v2.4s15        uzp1 v0.2d, v1.2d, v2.2d16 17// CHECK: uzp1	v0.8b, v1.8b, v2.8b     // encoding: [0x20,0x18,0x02,0x0e]18// CHECK: uzp1	v0.16b, v1.16b, v2.16b  // encoding: [0x20,0x18,0x02,0x4e]19// CHECK: uzp1	v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x18,0x42,0x0e]20// CHECK: uzp1	v0.8h, v1.8h, v2.8h     // encoding: [0x20,0x18,0x42,0x4e]21// CHECK: uzp1	v0.2s, v1.2s, v2.2s     // encoding: [0x20,0x18,0x82,0x0e]22// CHECK: uzp1	v0.4s, v1.4s, v2.4s     // encoding: [0x20,0x18,0x82,0x4e]23// CHECK: uzp1	v0.2d, v1.2d, v2.2d     // encoding: [0x20,0x18,0xc2,0x4e]24 25        trn1 v0.8b, v1.8b, v2.8b26        trn1 v0.16b, v1.16b, v2.16b27        trn1 v0.4h, v1.4h, v2.4h28        trn1 v0.8h, v1.8h, v2.8h29        trn1 v0.2s, v1.2s, v2.2s30        trn1 v0.4s, v1.4s, v2.4s31        trn1 v0.2d, v1.2d, v2.2d32 33// CHECK: trn1	v0.8b, v1.8b, v2.8b     // encoding: [0x20,0x28,0x02,0x0e]34// CHECK: trn1	v0.16b, v1.16b, v2.16b  // encoding: [0x20,0x28,0x02,0x4e]35// CHECK: trn1	v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x28,0x42,0x0e]36// CHECK: trn1	v0.8h, v1.8h, v2.8h     // encoding: [0x20,0x28,0x42,0x4e]37// CHECK: trn1	v0.2s, v1.2s, v2.2s     // encoding: [0x20,0x28,0x82,0x0e]38// CHECK: trn1	v0.4s, v1.4s, v2.4s     // encoding: [0x20,0x28,0x82,0x4e]39// CHECK: trn1	v0.2d, v1.2d, v2.2d     // encoding: [0x20,0x28,0xc2,0x4e]40 41        zip1 v0.8b, v1.8b, v2.8b42        zip1 v0.16b, v1.16b, v2.16b43        zip1 v0.4h, v1.4h, v2.4h44        zip1 v0.8h, v1.8h, v2.8h45        zip1 v0.2s, v1.2s, v2.2s46        zip1 v0.4s, v1.4s, v2.4s47        zip1 v0.2d, v1.2d, v2.2d48 49// CHECK: zip1	v0.8b, v1.8b, v2.8b     // encoding: [0x20,0x38,0x02,0x0e]50// CHECK: zip1	v0.16b, v1.16b, v2.16b  // encoding: [0x20,0x38,0x02,0x4e]51// CHECK: zip1	v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x38,0x42,0x0e]52// CHECK: zip1	v0.8h, v1.8h, v2.8h     // encoding: [0x20,0x38,0x42,0x4e]53// CHECK: zip1	v0.2s, v1.2s, v2.2s     // encoding: [0x20,0x38,0x82,0x0e]54// CHECK: zip1	v0.4s, v1.4s, v2.4s     // encoding: [0x20,0x38,0x82,0x4e]55// CHECK: zip1	v0.2d, v1.2d, v2.2d     // encoding: [0x20,0x38,0xc2,0x4e]56 57        uzp2 v0.8b, v1.8b, v2.8b58        uzp2 v0.16b, v1.16b, v2.16b59        uzp2 v0.4h, v1.4h, v2.4h60        uzp2 v0.8h, v1.8h, v2.8h61        uzp2 v0.2s, v1.2s, v2.2s62        uzp2 v0.4s, v1.4s, v2.4s63        uzp2 v0.2d, v1.2d, v2.2d64 65// CHECK: uzp2	v0.8b, v1.8b, v2.8b     // encoding: [0x20,0x58,0x02,0x0e]66// CHECK: uzp2	v0.16b, v1.16b, v2.16b  // encoding: [0x20,0x58,0x02,0x4e]67// CHECK: uzp2	v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x58,0x42,0x0e]68// CHECK: uzp2	v0.8h, v1.8h, v2.8h     // encoding: [0x20,0x58,0x42,0x4e]69// CHECK: uzp2	v0.2s, v1.2s, v2.2s     // encoding: [0x20,0x58,0x82,0x0e]70// CHECK: uzp2	v0.4s, v1.4s, v2.4s     // encoding: [0x20,0x58,0x82,0x4e]71// CHECK: uzp2	v0.2d, v1.2d, v2.2d     // encoding: [0x20,0x58,0xc2,0x4e]72 73        trn2 v0.8b, v1.8b, v2.8b74        trn2 v0.16b, v1.16b, v2.16b75        trn2 v0.4h, v1.4h, v2.4h76        trn2 v0.8h, v1.8h, v2.8h77        trn2 v0.2s, v1.2s, v2.2s78        trn2 v0.4s, v1.4s, v2.4s79        trn2 v0.2d, v1.2d, v2.2d80 81// CHECK: trn2	v0.8b, v1.8b, v2.8b     // encoding: [0x20,0x68,0x02,0x0e]82// CHECK: trn2	v0.16b, v1.16b, v2.16b  // encoding: [0x20,0x68,0x02,0x4e]83// CHECK: trn2	v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x68,0x42,0x0e]84// CHECK: trn2	v0.8h, v1.8h, v2.8h     // encoding: [0x20,0x68,0x42,0x4e]85// CHECK: trn2	v0.2s, v1.2s, v2.2s     // encoding: [0x20,0x68,0x82,0x0e]86// CHECK: trn2	v0.4s, v1.4s, v2.4s     // encoding: [0x20,0x68,0x82,0x4e]87// CHECK: trn2	v0.2d, v1.2d, v2.2d     // encoding: [0x20,0x68,0xc2,0x4e]88 89        zip2 v0.8b, v1.8b, v2.8b90        zip2 v0.16b, v1.16b, v2.16b91        zip2 v0.4h, v1.4h, v2.4h92        zip2 v0.8h, v1.8h, v2.8h93        zip2 v0.2s, v1.2s, v2.2s94        zip2 v0.4s, v1.4s, v2.4s95        zip2 v0.2d, v1.2d, v2.2d96 97// CHECK: zip2	v0.8b, v1.8b, v2.8b     // encoding: [0x20,0x78,0x02,0x0e]98// CHECK: zip2	v0.16b, v1.16b, v2.16b  // encoding: [0x20,0x78,0x02,0x4e]99// CHECK: zip2	v0.4h, v1.4h, v2.4h     // encoding: [0x20,0x78,0x42,0x0e]100// CHECK: zip2	v0.8h, v1.8h, v2.8h     // encoding: [0x20,0x78,0x42,0x4e]101// CHECK: zip2	v0.2s, v1.2s, v2.2s     // encoding: [0x20,0x78,0x82,0x0e]102// CHECK: zip2	v0.4s, v1.4s, v2.4s     // encoding: [0x20,0x78,0x82,0x4e]103// CHECK: zip2	v0.2d, v1.2d, v2.2d     // encoding: [0x20,0x78,0xc2,0x4e]104