brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.0 KiB · 74edc51 Raw
118 lines · plain
1// RUN: llvm-mc -triple=arm64 -mattr=+neon,+fullfp16 -show-encoding < %s | FileCheck %s2 3// Check that the assembler can handle the documented syntax for AArch644 5//------------------------------------------------------------------------------6// Instructions across vector registers7//------------------------------------------------------------------------------8 9        saddlv h0, v1.8b10        saddlv h0, v1.16b11        saddlv s0, v1.4h12        saddlv s0, v1.8h13        saddlv d0, v1.4s14 15// CHECK: saddlv	h0, v1.8b               // encoding: [0x20,0x38,0x30,0x0e]16// CHECK: saddlv	h0, v1.16b              // encoding: [0x20,0x38,0x30,0x4e]17// CHECK: saddlv	s0, v1.4h               // encoding: [0x20,0x38,0x70,0x0e]18// CHECK: saddlv	s0, v1.8h               // encoding: [0x20,0x38,0x70,0x4e]19// CHECK: saddlv	d0, v1.4s               // encoding: [0x20,0x38,0xb0,0x4e]20 21        uaddlv h0, v1.8b22        uaddlv h0, v1.16b23        uaddlv s0, v1.4h24        uaddlv s0, v1.8h25        uaddlv d0, v1.4s26 27// CHECK: uaddlv	h0, v1.8b               // encoding: [0x20,0x38,0x30,0x2e]28// CHECK: uaddlv	h0, v1.16b              // encoding: [0x20,0x38,0x30,0x6e]29// CHECK: uaddlv	s0, v1.4h               // encoding: [0x20,0x38,0x70,0x2e]30// CHECK: uaddlv	s0, v1.8h               // encoding: [0x20,0x38,0x70,0x6e]31// CHECK: uaddlv	d0, v1.4s               // encoding: [0x20,0x38,0xb0,0x6e]32 33        smaxv b0, v1.8b34        smaxv b0, v1.16b35        smaxv h0, v1.4h36        smaxv h0, v1.8h37        smaxv s0, v1.4s38 39// CHECK: smaxv	b0, v1.8b               // encoding: [0x20,0xa8,0x30,0x0e]40// CHECK: smaxv	b0, v1.16b              // encoding: [0x20,0xa8,0x30,0x4e]41// CHECK: smaxv	h0, v1.4h               // encoding: [0x20,0xa8,0x70,0x0e]42// CHECK: smaxv	h0, v1.8h               // encoding: [0x20,0xa8,0x70,0x4e]43// CHECK: smaxv	s0, v1.4s               // encoding: [0x20,0xa8,0xb0,0x4e]44 45        sminv b0, v1.8b46        sminv b0, v1.16b47        sminv h0, v1.4h48        sminv h0, v1.8h49        sminv s0, v1.4s50 51// CHECK: sminv	b0, v1.8b               // encoding: [0x20,0xa8,0x31,0x0e]52// CHECK: sminv	b0, v1.16b              // encoding: [0x20,0xa8,0x31,0x4e]53// CHECK: sminv	h0, v1.4h               // encoding: [0x20,0xa8,0x71,0x0e]54// CHECK: sminv	h0, v1.8h               // encoding: [0x20,0xa8,0x71,0x4e]55// CHECK: sminv	s0, v1.4s               // encoding: [0x20,0xa8,0xb1,0x4e]56 57        umaxv b0, v1.8b58        umaxv b0, v1.16b59        umaxv h0, v1.4h60        umaxv h0, v1.8h61        umaxv s0, v1.4s62 63// CHECK: umaxv	b0, v1.8b               // encoding: [0x20,0xa8,0x30,0x2e]64// CHECK: umaxv	b0, v1.16b              // encoding: [0x20,0xa8,0x30,0x6e]65// CHECK: umaxv	h0, v1.4h               // encoding: [0x20,0xa8,0x70,0x2e]66// CHECK: umaxv	h0, v1.8h               // encoding: [0x20,0xa8,0x70,0x6e]67// CHECK: umaxv	s0, v1.4s               // encoding: [0x20,0xa8,0xb0,0x6e]68 69        uminv b0, v1.8b70        uminv b0, v1.16b71        uminv h0, v1.4h72        uminv h0, v1.8h73        uminv s0, v1.4s74 75// CHECK: uminv	b0, v1.8b               // encoding: [0x20,0xa8,0x31,0x2e]76// CHECK: uminv	b0, v1.16b              // encoding: [0x20,0xa8,0x31,0x6e]77// CHECK: uminv	h0, v1.4h               // encoding: [0x20,0xa8,0x71,0x2e]78// CHECK: uminv	h0, v1.8h               // encoding: [0x20,0xa8,0x71,0x6e]79// CHECK: uminv	s0, v1.4s               // encoding: [0x20,0xa8,0xb1,0x6e]80 81        addv b0, v1.8b82        addv b0, v1.16b83        addv h0, v1.4h84        addv h0, v1.8h85        addv s0, v1.4s86 87// CHECK: addv	b0, v1.8b               // encoding: [0x20,0xb8,0x31,0x0e]88// CHECK: addv	b0, v1.16b              // encoding: [0x20,0xb8,0x31,0x4e]89// CHECK: addv	h0, v1.4h               // encoding: [0x20,0xb8,0x71,0x0e]90// CHECK: addv	h0, v1.8h               // encoding: [0x20,0xb8,0x71,0x4e]91// CHECK: addv	s0, v1.4s               // encoding: [0x20,0xb8,0xb1,0x4e]92 93        fmaxnmv h0, v1.4h94        fminnmv h0, v1.4h95        fmaxv h0, v1.4h96        fminv h0, v1.4h97        fmaxnmv h0, v1.8h98        fminnmv h0, v1.8h99        fmaxv h0, v1.8h100        fminv h0, v1.8h101        fmaxnmv s0, v1.4s102        fminnmv s0, v1.4s103        fmaxv s0, v1.4s104        fminv s0, v1.4s105 106// CHECK: fmaxnmv h0, v1.4h               // encoding: [0x20,0xc8,0x30,0x0e]107// CHECK: fminnmv h0, v1.4h               // encoding: [0x20,0xc8,0xb0,0x0e]108// CHECK: fmaxv   h0, v1.4h               // encoding: [0x20,0xf8,0x30,0x0e]109// CHECK: fminv   h0, v1.4h               // encoding: [0x20,0xf8,0xb0,0x0e]110// CHECK: fmaxnmv h0, v1.8h               // encoding: [0x20,0xc8,0x30,0x4e]111// CHECK: fminnmv h0, v1.8h               // encoding: [0x20,0xc8,0xb0,0x4e]112// CHECK: fmaxv   h0, v1.8h               // encoding: [0x20,0xf8,0x30,0x4e]113// CHECK: fminv   h0, v1.8h               // encoding: [0x20,0xf8,0xb0,0x4e]114// CHECK: fmaxnmv	s0, v1.4s               // encoding: [0x20,0xc8,0x30,0x6e]115// CHECK: fminnmv	s0, v1.4s               // encoding: [0x20,0xc8,0xb0,0x6e]116// CHECK: fmaxv	s0, v1.4s               // encoding: [0x20,0xf8,0x30,0x6e]117// CHECK: fminv	s0, v1.4s               // encoding: [0x20,0xf8,0xb0,0x6e]118