brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.3 KiB · 7a8a299 Raw
86 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+ssve-fp8fma  2>&1 < %s| FileCheck %s2 3// ------------------------------------------------------------------------- //4// z register out of range for index5 6fmlallbb z0.s, z1.b, z8.b[0]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction8// CHECK-NEXT: fmlallbb z0.s, z1.b, z8.b[0]9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11fmlallbt z0.s, z1.b, z8.b[0]12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction13// CHECK-NEXT: fmlallbt z0.s, z1.b, z8.b[0]14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16fmlalltb z0.s, z1.b, z8.b[0]17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction18// CHECK-NEXT: fmlalltb z0.s, z1.b, z8.b[0]19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21fmlalltt z0.s, z1.b, z8.b[0]22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction23// CHECK-NEXT: fmlalltt z0.s, z1.b, z8.b[0]24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26// ------------------------------------------------------------------------- //27// Index out of bounds28 29fmlallbb z0.s, z1.b, z7.b[-1]30// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].31// CHECK-NEXT: fmlallbb z0.s, z1.b, z7.b[-1]32// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:33 34fmlallbt z0.s, z1.b, z7.b[16]35// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].36// CHECK-NEXT: fmlallbt z0.s, z1.b, z7.b[16]37// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:38 39fmlalltb z0.s, z1.b, z7.b[-1]40// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].41// CHECK-NEXT: fmlalltb z0.s, z1.b, z7.b[-1]42// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:43 44fmlalltt z0.s, z1.b, z7.b[16]45// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: vector lane must be an integer in range [0, 15].46// CHECK-NEXT: fmlalltt z0.s, z1.b, z7.b[16]47// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:48 49// ------------------------------------------------------------------------- //50// Invalid element width51 52fmlallbb z0.h, z1.b, z2.b[0]53// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width54// CHECK-NEXT: fmlallbb z0.h, z1.b, z2.b[0]55// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:56 57fmlallbt z0.h, z1.b, z2.b58// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width59// CHECK-NEXT: fmlallbt  z0.h, z1.b, z2.b60// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:61 62fmlalltb z0.s, z1.h, z2.h[0]63// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width64// CHECK-NEXT: fmlalltb z0.s, z1.h, z2.h[0]65// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:66 67fmlalltt z0.s, z1.h, z2.h68// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid element width69// CHECK-NEXT: fmlalltt  z0.s, z1.h, z2.h70// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:71 72// --------------------------------------------------------------------------//73// Negative tests for instructions that are incompatible with movprfx74 75movprfx z0.s, p0/z, z0.s76fmlallbb  z0.s, z1.b, z7.b[0]77// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx78// CHECK-NEXT: fmlallbb  z0.s, z1.b, z7.b[0]79// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:80 81movprfx z29.s, p0/z, z7.s82fmlalltt  z29.s, z30.b, z31.b83// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a predicated movprfx, suggest using unpredicated movprfx84// CHECK-NEXT: fmlalltt  z29.s, z30.b, z31.b85// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:86