1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -triple=aarch64-none-linux-gnu -mattr=+crypto -mattr=+neon -show-encoding < %s | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker// Check that the assembler can handle the documented syntax for AArch64 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 6*9880d681SAndroid Build Coastguard Worker// Instructions with 3 different vector data types 7*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 10*9880d681SAndroid Build Coastguard Worker// Long 11*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 14*9880d681SAndroid Build Coastguard Worker// Long - Variant 1 15*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard Worker saddl v0.8h, v1.8b, v2.8b 18*9880d681SAndroid Build Coastguard Worker saddl v0.4s, v1.4h, v2.4h 19*9880d681SAndroid Build Coastguard Worker saddl v0.2d, v1.2s, v2.2s 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard Worker// CHECK: saddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x0e] 22*9880d681SAndroid Build Coastguard Worker// CHECK: saddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x0e] 23*9880d681SAndroid Build Coastguard Worker// CHECK: saddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x0e] 24*9880d681SAndroid Build Coastguard Worker 25*9880d681SAndroid Build Coastguard Worker saddl2 v0.4s, v1.8h, v2.8h 26*9880d681SAndroid Build Coastguard Worker saddl2 v0.8h, v1.16b, v2.16b 27*9880d681SAndroid Build Coastguard Worker saddl2 v0.2d, v1.4s, v2.4s 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard Worker// CHECK: saddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x4e] 30*9880d681SAndroid Build Coastguard Worker// CHECK: saddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x4e] 31*9880d681SAndroid Build Coastguard Worker// CHECK: saddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x4e] 32*9880d681SAndroid Build Coastguard Worker 33*9880d681SAndroid Build Coastguard Worker uaddl v0.8h, v1.8b, v2.8b 34*9880d681SAndroid Build Coastguard Worker uaddl v0.4s, v1.4h, v2.4h 35*9880d681SAndroid Build Coastguard Worker uaddl v0.2d, v1.2s, v2.2s 36*9880d681SAndroid Build Coastguard Worker 37*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x00,0x22,0x2e] 38*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x00,0x62,0x2e] 39*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x00,0xa2,0x2e] 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker uaddl2 v0.8h, v1.16b, v2.16b 42*9880d681SAndroid Build Coastguard Worker uaddl2 v0.4s, v1.8h, v2.8h 43*9880d681SAndroid Build Coastguard Worker uaddl2 v0.2d, v1.4s, v2.4s 44*9880d681SAndroid Build Coastguard Worker 45*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x00,0x22,0x6e] 46*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x00,0x62,0x6e] 47*9880d681SAndroid Build Coastguard Worker// CHECK: uaddl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x00,0xa2,0x6e] 48*9880d681SAndroid Build Coastguard Worker 49*9880d681SAndroid Build Coastguard Worker ssubl v0.8h, v1.8b, v2.8b 50*9880d681SAndroid Build Coastguard Worker ssubl v0.4s, v1.4h, v2.4h 51*9880d681SAndroid Build Coastguard Worker ssubl v0.2d, v1.2s, v2.2s 52*9880d681SAndroid Build Coastguard Worker 53*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x0e] 54*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x0e] 55*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x0e] 56*9880d681SAndroid Build Coastguard Worker 57*9880d681SAndroid Build Coastguard Worker ssubl2 v0.8h, v1.16b, v2.16b 58*9880d681SAndroid Build Coastguard Worker ssubl2 v0.4s, v1.8h, v2.8h 59*9880d681SAndroid Build Coastguard Worker ssubl2 v0.2d, v1.4s, v2.4s 60*9880d681SAndroid Build Coastguard Worker 61*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x4e] 62*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x4e] 63*9880d681SAndroid Build Coastguard Worker// CHECK: ssubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x4e] 64*9880d681SAndroid Build Coastguard Worker 65*9880d681SAndroid Build Coastguard Worker usubl v0.8h, v1.8b, v2.8b 66*9880d681SAndroid Build Coastguard Worker usubl v0.4s, v1.4h, v2.4h 67*9880d681SAndroid Build Coastguard Worker usubl v0.2d, v1.2s, v2.2s 68*9880d681SAndroid Build Coastguard Worker 69*9880d681SAndroid Build Coastguard Worker// CHECK: usubl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x20,0x22,0x2e] 70*9880d681SAndroid Build Coastguard Worker// CHECK: usubl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x20,0x62,0x2e] 71*9880d681SAndroid Build Coastguard Worker// CHECK: usubl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x20,0xa2,0x2e] 72*9880d681SAndroid Build Coastguard Worker 73*9880d681SAndroid Build Coastguard Worker usubl2 v0.8h, v1.16b, v2.16b 74*9880d681SAndroid Build Coastguard Worker usubl2 v0.4s, v1.8h, v2.8h 75*9880d681SAndroid Build Coastguard Worker usubl2 v0.2d, v1.4s, v2.4s 76*9880d681SAndroid Build Coastguard Worker 77*9880d681SAndroid Build Coastguard Worker// CHECK: usubl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x20,0x22,0x6e] 78*9880d681SAndroid Build Coastguard Worker// CHECK: usubl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x20,0x62,0x6e] 79*9880d681SAndroid Build Coastguard Worker// CHECK: usubl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x20,0xa2,0x6e] 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker sabal v0.8h, v1.8b, v2.8b 82*9880d681SAndroid Build Coastguard Worker sabal v0.4s, v1.4h, v2.4h 83*9880d681SAndroid Build Coastguard Worker sabal v0.2d, v1.2s, v2.2s 84*9880d681SAndroid Build Coastguard Worker 85*9880d681SAndroid Build Coastguard Worker// CHECK: sabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x0e] 86*9880d681SAndroid Build Coastguard Worker// CHECK: sabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x0e] 87*9880d681SAndroid Build Coastguard Worker// CHECK: sabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x0e] 88*9880d681SAndroid Build Coastguard Worker 89*9880d681SAndroid Build Coastguard Worker sabal2 v0.8h, v1.16b, v2.16b 90*9880d681SAndroid Build Coastguard Worker sabal2 v0.4s, v1.8h, v2.8h 91*9880d681SAndroid Build Coastguard Worker sabal2 v0.2d, v1.4s, v2.4s 92*9880d681SAndroid Build Coastguard Worker 93*9880d681SAndroid Build Coastguard Worker// CHECK: sabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x4e] 94*9880d681SAndroid Build Coastguard Worker// CHECK: sabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x4e] 95*9880d681SAndroid Build Coastguard Worker// CHECK: sabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x4e] 96*9880d681SAndroid Build Coastguard Worker 97*9880d681SAndroid Build Coastguard Worker uabal v0.8h, v1.8b, v2.8b 98*9880d681SAndroid Build Coastguard Worker uabal v0.4s, v1.4h, v2.4h 99*9880d681SAndroid Build Coastguard Worker uabal v0.2d, v1.2s, v2.2s 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker// CHECK: uabal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x50,0x22,0x2e] 102*9880d681SAndroid Build Coastguard Worker// CHECK: uabal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x50,0x62,0x2e] 103*9880d681SAndroid Build Coastguard Worker// CHECK: uabal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x50,0xa2,0x2e] 104*9880d681SAndroid Build Coastguard Worker 105*9880d681SAndroid Build Coastguard Worker uabal2 v0.8h, v1.16b, v2.16b 106*9880d681SAndroid Build Coastguard Worker uabal2 v0.4s, v1.8h, v2.8h 107*9880d681SAndroid Build Coastguard Worker uabal2 v0.2d, v1.4s, v2.4s 108*9880d681SAndroid Build Coastguard Worker 109*9880d681SAndroid Build Coastguard Worker// CHECK: uabal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x50,0x22,0x6e] 110*9880d681SAndroid Build Coastguard Worker// CHECK: uabal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x50,0x62,0x6e] 111*9880d681SAndroid Build Coastguard Worker// CHECK: uabal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x50,0xa2,0x6e] 112*9880d681SAndroid Build Coastguard Worker 113*9880d681SAndroid Build Coastguard Worker sabdl v0.8h, v1.8b, v2.8b 114*9880d681SAndroid Build Coastguard Worker sabdl v0.4s, v1.4h, v2.4h 115*9880d681SAndroid Build Coastguard Worker sabdl v0.2d, v1.2s, v2.2s 116*9880d681SAndroid Build Coastguard Worker 117*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x0e] 118*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x0e] 119*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x0e] 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Worker sabdl2 v0.8h, v1.16b, v2.16b 122*9880d681SAndroid Build Coastguard Worker sabdl2 v0.4s, v1.8h, v2.8h 123*9880d681SAndroid Build Coastguard Worker sabdl2 v0.2d, v1.4s, v2.4s 124*9880d681SAndroid Build Coastguard Worker 125*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x4e] 126*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x4e] 127*9880d681SAndroid Build Coastguard Worker// CHECK: sabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x4e] 128*9880d681SAndroid Build Coastguard Worker 129*9880d681SAndroid Build Coastguard Worker uabdl v0.8h, v1.8b, v2.8b 130*9880d681SAndroid Build Coastguard Worker uabdl v0.4s, v1.4h, v2.4h 131*9880d681SAndroid Build Coastguard Worker uabdl v0.2d, v1.2s, v2.2s 132*9880d681SAndroid Build Coastguard Worker 133*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl v0.8h, v1.8b, v2.8b // encoding: [0x20,0x70,0x22,0x2e] 134*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl v0.4s, v1.4h, v2.4h // encoding: [0x20,0x70,0x62,0x2e] 135*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl v0.2d, v1.2s, v2.2s // encoding: [0x20,0x70,0xa2,0x2e] 136*9880d681SAndroid Build Coastguard Worker 137*9880d681SAndroid Build Coastguard Worker uabdl2 v0.8h, v1.16b, v2.16b 138*9880d681SAndroid Build Coastguard Worker uabdl2 v0.4s, v1.8h, v2.8h 139*9880d681SAndroid Build Coastguard Worker uabdl2 v0.2d, v1.4s, v2.4s 140*9880d681SAndroid Build Coastguard Worker 141*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x70,0x22,0x6e] 142*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x70,0x62,0x6e] 143*9880d681SAndroid Build Coastguard Worker// CHECK: uabdl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x70,0xa2,0x6e] 144*9880d681SAndroid Build Coastguard Worker 145*9880d681SAndroid Build Coastguard Worker smlal v0.8h, v1.8b, v2.8b 146*9880d681SAndroid Build Coastguard Worker smlal v0.4s, v1.4h, v2.4h 147*9880d681SAndroid Build Coastguard Worker smlal v0.2d, v1.2s, v2.2s 148*9880d681SAndroid Build Coastguard Worker 149*9880d681SAndroid Build Coastguard Worker// CHECK: smlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x0e] 150*9880d681SAndroid Build Coastguard Worker// CHECK: smlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x0e] 151*9880d681SAndroid Build Coastguard Worker// CHECK: smlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x0e] 152*9880d681SAndroid Build Coastguard Worker 153*9880d681SAndroid Build Coastguard Worker smlal2 v0.8h, v1.16b, v2.16b 154*9880d681SAndroid Build Coastguard Worker smlal2 v0.4s, v1.8h, v2.8h 155*9880d681SAndroid Build Coastguard Worker smlal2 v0.2d, v1.4s, v2.4s 156*9880d681SAndroid Build Coastguard Worker 157*9880d681SAndroid Build Coastguard Worker// CHECK: smlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x4e] 158*9880d681SAndroid Build Coastguard Worker// CHECK: smlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x4e] 159*9880d681SAndroid Build Coastguard Worker// CHECK: smlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x4e] 160*9880d681SAndroid Build Coastguard Worker 161*9880d681SAndroid Build Coastguard Worker umlal v0.8h, v1.8b, v2.8b 162*9880d681SAndroid Build Coastguard Worker umlal v0.4s, v1.4h, v2.4h 163*9880d681SAndroid Build Coastguard Worker umlal v0.2d, v1.2s, v2.2s 164*9880d681SAndroid Build Coastguard Worker 165*9880d681SAndroid Build Coastguard Worker// CHECK: umlal v0.8h, v1.8b, v2.8b // encoding: [0x20,0x80,0x22,0x2e] 166*9880d681SAndroid Build Coastguard Worker// CHECK: umlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x80,0x62,0x2e] 167*9880d681SAndroid Build Coastguard Worker// CHECK: umlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x80,0xa2,0x2e] 168*9880d681SAndroid Build Coastguard Worker 169*9880d681SAndroid Build Coastguard Worker umlal2 v0.8h, v1.16b, v2.16b 170*9880d681SAndroid Build Coastguard Worker umlal2 v0.4s, v1.8h, v2.8h 171*9880d681SAndroid Build Coastguard Worker umlal2 v0.2d, v1.4s, v2.4s 172*9880d681SAndroid Build Coastguard Worker 173*9880d681SAndroid Build Coastguard Worker// CHECK: umlal2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0x80,0x22,0x6e] 174*9880d681SAndroid Build Coastguard Worker// CHECK: umlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x80,0x62,0x6e] 175*9880d681SAndroid Build Coastguard Worker// CHECK: umlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x80,0xa2,0x6e] 176*9880d681SAndroid Build Coastguard Worker 177*9880d681SAndroid Build Coastguard Worker smlsl v0.8h, v1.8b, v2.8b 178*9880d681SAndroid Build Coastguard Worker smlsl v0.4s, v1.4h, v2.4h 179*9880d681SAndroid Build Coastguard Worker smlsl v0.2d, v1.2s, v2.2s 180*9880d681SAndroid Build Coastguard Worker 181*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x0e] 182*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x0e] 183*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x0e] 184*9880d681SAndroid Build Coastguard Worker 185*9880d681SAndroid Build Coastguard Worker smlsl2 v0.8h, v1.16b, v2.16b 186*9880d681SAndroid Build Coastguard Worker smlsl2 v0.4s, v1.8h, v2.8h 187*9880d681SAndroid Build Coastguard Worker smlsl2 v0.2d, v1.4s, v2.4s 188*9880d681SAndroid Build Coastguard Worker 189*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x4e] 190*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x4e] 191*9880d681SAndroid Build Coastguard Worker// CHECK: smlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x4e] 192*9880d681SAndroid Build Coastguard Worker 193*9880d681SAndroid Build Coastguard Worker umlsl v0.8h, v1.8b, v2.8b 194*9880d681SAndroid Build Coastguard Worker umlsl v0.4s, v1.4h, v2.4h 195*9880d681SAndroid Build Coastguard Worker umlsl v0.2d, v1.2s, v2.2s 196*9880d681SAndroid Build Coastguard Worker 197*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl v0.8h, v1.8b, v2.8b // encoding: [0x20,0xa0,0x22,0x2e] 198*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xa0,0x62,0x2e] 199*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xa0,0xa2,0x2e] 200*9880d681SAndroid Build Coastguard Worker 201*9880d681SAndroid Build Coastguard Worker umlsl2 v0.8h, v1.16b, v2.16b 202*9880d681SAndroid Build Coastguard Worker umlsl2 v0.4s, v1.8h, v2.8h 203*9880d681SAndroid Build Coastguard Worker umlsl2 v0.2d, v1.4s, v2.4s 204*9880d681SAndroid Build Coastguard Worker 205*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xa0,0x22,0x6e] 206*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xa0,0x62,0x6e] 207*9880d681SAndroid Build Coastguard Worker// CHECK: umlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xa0,0xa2,0x6e] 208*9880d681SAndroid Build Coastguard Worker 209*9880d681SAndroid Build Coastguard Worker smull v0.8h, v1.8b, v2.8b 210*9880d681SAndroid Build Coastguard Worker smull v0.4s, v1.4h, v2.4h 211*9880d681SAndroid Build Coastguard Worker smull v0.2d, v1.2s, v2.2s 212*9880d681SAndroid Build Coastguard Worker 213*9880d681SAndroid Build Coastguard Worker// CHECK: smull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x0e] 214*9880d681SAndroid Build Coastguard Worker// CHECK: smull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x0e] 215*9880d681SAndroid Build Coastguard Worker// CHECK: smull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x0e] 216*9880d681SAndroid Build Coastguard Worker 217*9880d681SAndroid Build Coastguard Worker smull2 v0.8h, v1.16b, v2.16b 218*9880d681SAndroid Build Coastguard Worker smull2 v0.4s, v1.8h, v2.8h 219*9880d681SAndroid Build Coastguard Worker smull2 v0.2d, v1.4s, v2.4s 220*9880d681SAndroid Build Coastguard Worker 221*9880d681SAndroid Build Coastguard Worker// CHECK: smull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x4e] 222*9880d681SAndroid Build Coastguard Worker// CHECK: smull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x4e] 223*9880d681SAndroid Build Coastguard Worker// CHECK: smull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x4e] 224*9880d681SAndroid Build Coastguard Worker 225*9880d681SAndroid Build Coastguard Worker umull v0.8h, v1.8b, v2.8b 226*9880d681SAndroid Build Coastguard Worker umull v0.4s, v1.4h, v2.4h 227*9880d681SAndroid Build Coastguard Worker umull v0.2d, v1.2s, v2.2s 228*9880d681SAndroid Build Coastguard Worker 229*9880d681SAndroid Build Coastguard Worker// CHECK: umull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xc0,0x22,0x2e] 230*9880d681SAndroid Build Coastguard Worker// CHECK: umull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xc0,0x62,0x2e] 231*9880d681SAndroid Build Coastguard Worker// CHECK: umull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xc0,0xa2,0x2e] 232*9880d681SAndroid Build Coastguard Worker 233*9880d681SAndroid Build Coastguard Worker umull2 v0.8h, v1.16b, v2.16b 234*9880d681SAndroid Build Coastguard Worker umull2 v0.4s, v1.8h, v2.8h 235*9880d681SAndroid Build Coastguard Worker umull2 v0.2d, v1.4s, v2.4s 236*9880d681SAndroid Build Coastguard Worker 237*9880d681SAndroid Build Coastguard Worker// CHECK: umull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xc0,0x22,0x6e] 238*9880d681SAndroid Build Coastguard Worker// CHECK: umull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xc0,0x62,0x6e] 239*9880d681SAndroid Build Coastguard Worker// CHECK: umull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xc0,0xa2,0x6e] 240*9880d681SAndroid Build Coastguard Worker 241*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 242*9880d681SAndroid Build Coastguard Worker// Long - Variant 2 243*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 244*9880d681SAndroid Build Coastguard Worker 245*9880d681SAndroid Build Coastguard Worker sqdmlal v0.4s, v1.4h, v2.4h 246*9880d681SAndroid Build Coastguard Worker sqdmlal v0.2d, v1.2s, v2.2s 247*9880d681SAndroid Build Coastguard Worker 248*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal v0.4s, v1.4h, v2.4h // encoding: [0x20,0x90,0x62,0x0e] 249*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal v0.2d, v1.2s, v2.2s // encoding: [0x20,0x90,0xa2,0x0e] 250*9880d681SAndroid Build Coastguard Worker 251*9880d681SAndroid Build Coastguard Worker sqdmlal2 v0.4s, v1.8h, v2.8h 252*9880d681SAndroid Build Coastguard Worker sqdmlal2 v0.2d, v1.4s, v2.4s 253*9880d681SAndroid Build Coastguard Worker 254*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0x90,0x62,0x4e] 255*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlal2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0x90,0xa2,0x4e] 256*9880d681SAndroid Build Coastguard Worker 257*9880d681SAndroid Build Coastguard Worker sqdmlsl v0.4s, v1.4h, v2.4h 258*9880d681SAndroid Build Coastguard Worker sqdmlsl v0.2d, v1.2s, v2.2s 259*9880d681SAndroid Build Coastguard Worker 260*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl v0.4s, v1.4h, v2.4h // encoding: [0x20,0xb0,0x62,0x0e] 261*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl v0.2d, v1.2s, v2.2s // encoding: [0x20,0xb0,0xa2,0x0e] 262*9880d681SAndroid Build Coastguard Worker 263*9880d681SAndroid Build Coastguard Worker sqdmlsl2 v0.4s, v1.8h, v2.8h 264*9880d681SAndroid Build Coastguard Worker sqdmlsl2 v0.2d, v1.4s, v2.4s 265*9880d681SAndroid Build Coastguard Worker 266*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xb0,0x62,0x4e] 267*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmlsl2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xb0,0xa2,0x4e] 268*9880d681SAndroid Build Coastguard Worker 269*9880d681SAndroid Build Coastguard Worker sqdmull v0.4s, v1.4h, v2.4h 270*9880d681SAndroid Build Coastguard Worker sqdmull v0.2d, v1.2s, v2.2s 271*9880d681SAndroid Build Coastguard Worker 272*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull v0.4s, v1.4h, v2.4h // encoding: [0x20,0xd0,0x62,0x0e] 273*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull v0.2d, v1.2s, v2.2s // encoding: [0x20,0xd0,0xa2,0x0e] 274*9880d681SAndroid Build Coastguard Worker 275*9880d681SAndroid Build Coastguard Worker sqdmull2 v0.4s, v1.8h, v2.8h 276*9880d681SAndroid Build Coastguard Worker sqdmull2 v0.2d, v1.4s, v2.4s 277*9880d681SAndroid Build Coastguard Worker 278*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull2 v0.4s, v1.8h, v2.8h // encoding: [0x20,0xd0,0x62,0x4e] 279*9880d681SAndroid Build Coastguard Worker// CHECK: sqdmull2 v0.2d, v1.4s, v2.4s // encoding: [0x20,0xd0,0xa2,0x4e] 280*9880d681SAndroid Build Coastguard Worker 281*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 282*9880d681SAndroid Build Coastguard Worker// Long - Variant 3 283*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Worker pmull v0.8h, v1.8b, v2.8b 286*9880d681SAndroid Build Coastguard Worker pmull v0.1q, v1.1d, v2.1d 287*9880d681SAndroid Build Coastguard Worker 288*9880d681SAndroid Build Coastguard Worker// CHECK: pmull v0.8h, v1.8b, v2.8b // encoding: [0x20,0xe0,0x22,0x0e] 289*9880d681SAndroid Build Coastguard Worker// CHECK: pmull v0.1q, v1.1d, v2.1d // encoding: [0x20,0xe0,0xe2,0x0e] 290*9880d681SAndroid Build Coastguard Worker 291*9880d681SAndroid Build Coastguard Worker pmull2 v0.8h, v1.16b, v2.16b 292*9880d681SAndroid Build Coastguard Worker pmull2 v0.1q, v1.2d, v2.2d 293*9880d681SAndroid Build Coastguard Worker 294*9880d681SAndroid Build Coastguard Worker// CHECK: pmull2 v0.8h, v1.16b, v2.16b // encoding: [0x20,0xe0,0x22,0x4e] 295*9880d681SAndroid Build Coastguard Worker// CHECK: pmull2 v0.1q, v1.2d, v2.2d // encoding: [0x20,0xe0,0xe2,0x4e] 296*9880d681SAndroid Build Coastguard Worker 297*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 298*9880d681SAndroid Build Coastguard Worker// Widen 299*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 300*9880d681SAndroid Build Coastguard Worker 301*9880d681SAndroid Build Coastguard Worker saddw v0.8h, v1.8h, v2.8b 302*9880d681SAndroid Build Coastguard Worker saddw v0.4s, v1.4s, v2.4h 303*9880d681SAndroid Build Coastguard Worker saddw v0.2d, v1.2d, v2.2s 304*9880d681SAndroid Build Coastguard Worker 305*9880d681SAndroid Build Coastguard Worker// CHECK: saddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x0e] 306*9880d681SAndroid Build Coastguard Worker// CHECK: saddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x0e] 307*9880d681SAndroid Build Coastguard Worker// CHECK: saddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x0e] 308*9880d681SAndroid Build Coastguard Worker 309*9880d681SAndroid Build Coastguard Worker saddw2 v0.8h, v1.8h, v2.16b 310*9880d681SAndroid Build Coastguard Worker saddw2 v0.4s, v1.4s, v2.8h 311*9880d681SAndroid Build Coastguard Worker saddw2 v0.2d, v1.2d, v2.4s 312*9880d681SAndroid Build Coastguard Worker 313*9880d681SAndroid Build Coastguard Worker// CHECK: saddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x4e] 314*9880d681SAndroid Build Coastguard Worker// CHECK: saddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x4e] 315*9880d681SAndroid Build Coastguard Worker// CHECK: saddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x4e] 316*9880d681SAndroid Build Coastguard Worker 317*9880d681SAndroid Build Coastguard Worker uaddw v0.8h, v1.8h, v2.8b 318*9880d681SAndroid Build Coastguard Worker uaddw v0.4s, v1.4s, v2.4h 319*9880d681SAndroid Build Coastguard Worker uaddw v0.2d, v1.2d, v2.2s 320*9880d681SAndroid Build Coastguard Worker 321*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x10,0x22,0x2e] 322*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x10,0x62,0x2e] 323*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x10,0xa2,0x2e] 324*9880d681SAndroid Build Coastguard Worker 325*9880d681SAndroid Build Coastguard Worker uaddw2 v0.8h, v1.8h, v2.16b 326*9880d681SAndroid Build Coastguard Worker uaddw2 v0.4s, v1.4s, v2.8h 327*9880d681SAndroid Build Coastguard Worker uaddw2 v0.2d, v1.2d, v2.4s 328*9880d681SAndroid Build Coastguard Worker 329*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x10,0x22,0x6e] 330*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x10,0x62,0x6e] 331*9880d681SAndroid Build Coastguard Worker// CHECK: uaddw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x10,0xa2,0x6e] 332*9880d681SAndroid Build Coastguard Worker 333*9880d681SAndroid Build Coastguard Worker ssubw v0.8h, v1.8h, v2.8b 334*9880d681SAndroid Build Coastguard Worker ssubw v0.4s, v1.4s, v2.4h 335*9880d681SAndroid Build Coastguard Worker ssubw v0.2d, v1.2d, v2.2s 336*9880d681SAndroid Build Coastguard Worker 337*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x0e] 338*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x0e] 339*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x0e] 340*9880d681SAndroid Build Coastguard Worker 341*9880d681SAndroid Build Coastguard Worker ssubw2 v0.8h, v1.8h, v2.16b 342*9880d681SAndroid Build Coastguard Worker ssubw2 v0.4s, v1.4s, v2.8h 343*9880d681SAndroid Build Coastguard Worker ssubw2 v0.2d, v1.2d, v2.4s 344*9880d681SAndroid Build Coastguard Worker 345*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x4e] 346*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x4e] 347*9880d681SAndroid Build Coastguard Worker// CHECK: ssubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x4e] 348*9880d681SAndroid Build Coastguard Worker 349*9880d681SAndroid Build Coastguard Worker usubw v0.8h, v1.8h, v2.8b 350*9880d681SAndroid Build Coastguard Worker usubw v0.4s, v1.4s, v2.4h 351*9880d681SAndroid Build Coastguard Worker usubw v0.2d, v1.2d, v2.2s 352*9880d681SAndroid Build Coastguard Worker 353*9880d681SAndroid Build Coastguard Worker// CHECK: usubw v0.8h, v1.8h, v2.8b // encoding: [0x20,0x30,0x22,0x2e] 354*9880d681SAndroid Build Coastguard Worker// CHECK: usubw v0.4s, v1.4s, v2.4h // encoding: [0x20,0x30,0x62,0x2e] 355*9880d681SAndroid Build Coastguard Worker// CHECK: usubw v0.2d, v1.2d, v2.2s // encoding: [0x20,0x30,0xa2,0x2e] 356*9880d681SAndroid Build Coastguard Worker 357*9880d681SAndroid Build Coastguard Worker usubw2 v0.8h, v1.8h, v2.16b 358*9880d681SAndroid Build Coastguard Worker usubw2 v0.4s, v1.4s, v2.8h 359*9880d681SAndroid Build Coastguard Worker usubw2 v0.2d, v1.2d, v2.4s 360*9880d681SAndroid Build Coastguard Worker 361*9880d681SAndroid Build Coastguard Worker// CHECK: usubw2 v0.8h, v1.8h, v2.16b // encoding: [0x20,0x30,0x22,0x6e] 362*9880d681SAndroid Build Coastguard Worker// CHECK: usubw2 v0.4s, v1.4s, v2.8h // encoding: [0x20,0x30,0x62,0x6e] 363*9880d681SAndroid Build Coastguard Worker// CHECK: usubw2 v0.2d, v1.2d, v2.4s // encoding: [0x20,0x30,0xa2,0x6e] 364*9880d681SAndroid Build Coastguard Worker 365*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 366*9880d681SAndroid Build Coastguard Worker// Narrow 367*9880d681SAndroid Build Coastguard Worker//------------------------------------------------------------------------------ 368*9880d681SAndroid Build Coastguard Worker 369*9880d681SAndroid Build Coastguard Worker addhn v0.8b, v1.8h, v2.8h 370*9880d681SAndroid Build Coastguard Worker addhn v0.4h, v1.4s, v2.4s 371*9880d681SAndroid Build Coastguard Worker addhn v0.2s, v1.2d, v2.2d 372*9880d681SAndroid Build Coastguard Worker 373*9880d681SAndroid Build Coastguard Worker// CHECK: addhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x0e] 374*9880d681SAndroid Build Coastguard Worker// CHECK: addhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x0e] 375*9880d681SAndroid Build Coastguard Worker// CHECK: addhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x0e] 376*9880d681SAndroid Build Coastguard Worker 377*9880d681SAndroid Build Coastguard Worker addhn2 v0.16b, v1.8h, v2.8h 378*9880d681SAndroid Build Coastguard Worker addhn2 v0.8h, v1.4s, v2.4s 379*9880d681SAndroid Build Coastguard Worker addhn2 v0.4s, v1.2d, v2.2d 380*9880d681SAndroid Build Coastguard Worker 381*9880d681SAndroid Build Coastguard Worker// CHECK: addhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x4e] 382*9880d681SAndroid Build Coastguard Worker// CHECK: addhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x4e] 383*9880d681SAndroid Build Coastguard Worker// CHECK: addhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x4e] 384*9880d681SAndroid Build Coastguard Worker 385*9880d681SAndroid Build Coastguard Worker raddhn v0.8b, v1.8h, v2.8h 386*9880d681SAndroid Build Coastguard Worker raddhn v0.4h, v1.4s, v2.4s 387*9880d681SAndroid Build Coastguard Worker raddhn v0.2s, v1.2d, v2.2d 388*9880d681SAndroid Build Coastguard Worker 389*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x2e] 390*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x2e] 391*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x2e] 392*9880d681SAndroid Build Coastguard Worker 393*9880d681SAndroid Build Coastguard Worker raddhn2 v0.16b, v1.8h, v2.8h 394*9880d681SAndroid Build Coastguard Worker raddhn2 v0.8h, v1.4s, v2.4s 395*9880d681SAndroid Build Coastguard Worker raddhn2 v0.4s, v1.2d, v2.2d 396*9880d681SAndroid Build Coastguard Worker 397*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x40,0x22,0x6e] 398*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x40,0x62,0x6e] 399*9880d681SAndroid Build Coastguard Worker// CHECK: raddhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x40,0xa2,0x6e] 400*9880d681SAndroid Build Coastguard Worker 401*9880d681SAndroid Build Coastguard Worker rsubhn v0.8b, v1.8h, v2.8h 402*9880d681SAndroid Build Coastguard Worker rsubhn v0.4h, v1.4s, v2.4s 403*9880d681SAndroid Build Coastguard Worker rsubhn v0.2s, v1.2d, v2.2d 404*9880d681SAndroid Build Coastguard Worker 405*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn v0.8b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x2e] 406*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn v0.4h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x2e] 407*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn v0.2s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x2e] 408*9880d681SAndroid Build Coastguard Worker 409*9880d681SAndroid Build Coastguard Worker rsubhn2 v0.16b, v1.8h, v2.8h 410*9880d681SAndroid Build Coastguard Worker rsubhn2 v0.8h, v1.4s, v2.4s 411*9880d681SAndroid Build Coastguard Worker rsubhn2 v0.4s, v1.2d, v2.2d 412*9880d681SAndroid Build Coastguard Worker 413*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn2 v0.16b, v1.8h, v2.8h // encoding: [0x20,0x60,0x22,0x6e] 414*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn2 v0.8h, v1.4s, v2.4s // encoding: [0x20,0x60,0x62,0x6e] 415*9880d681SAndroid Build Coastguard Worker// CHECK: rsubhn2 v0.4s, v1.2d, v2.2d // encoding: [0x20,0x60,0xa2,0x6e] 416