brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · 2bab1f7 Raw
76 lines · plain
1// RUN: not llvm-mc -triple=aarch64 -show-encoding -mattr=+sve  2>&1 < %s| FileCheck %s2 3// --------------------------------------------------------------------------//4// Invalid addressing modes.5 6adr z0.s, [z0.s, z0.d]7// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction8// CHECK-NEXT: adr z0.s, [z0.s, z0.d]9// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:10 11adr z0.s, [z0.s, z0.s, lsl]12// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: expected #imm after shift specifier13// CHECK-NEXT: adr z0.s, [z0.s, z0.s, lsl]14// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:15 16adr z0.s, [z0.s, z0.s, lsl #4]17// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid shift/extend specified, expected 'z[0..31].s'18// CHECK-NEXT: adr z0.s, [z0.s, z0.s, lsl #4]19// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:20 21adr z0.s, [z0.s, z0.s, uxtw]22// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid shift/extend specified, expected 'z[0..31].s'23// CHECK-NEXT: adr z0.s, [z0.s, z0.s, uxtw]24// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:25 26adr z0.s, [z0.s, z0.s, sxtw]27// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid shift/extend specified, expected 'z[0..31].s'28// CHECK-NEXT: adr z0.s, [z0.s, z0.s, sxtw]29// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:30 31adr z0.d, [z0.d, z0.s]32// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction33// CHECK-NEXT: adr z0.d, [z0.d, z0.s]34// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:35 36adr z0.d, [z0.d, z0.s, uxtw]37// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction38// CHECK-NEXT: adr z0.d, [z0.d, z0.s, uxtw]39// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:40 41adr z0.d, [z0.d, z0.s, sxtw]42// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid operand for instruction43// CHECK-NEXT: adr z0.d, [z0.d, z0.s, sxtw]44// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:45 46adr z0.d, [z0.d, z0.d, lsl #4]47// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid shift/extend specified, expected 'z[0..31].d, (lsl|uxtw|sxtw) #3'48// CHECK-NEXT: adr z0.d, [z0.d, z0.d, lsl #4]49// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:50 51adr z0.d, [z0.d, z0.d, uxtw #4]52// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid shift/extend specified, expected 'z[0..31].d, (lsl|uxtw|sxtw) #3'53// CHECK-NEXT: adr z0.d, [z0.d, z0.d, uxtw #4]54// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:55 56adr z0.d, [z0.d, z0.d, sxtw #4]57// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: invalid shift/extend specified, expected 'z[0..31].d, (lsl|uxtw|sxtw) #3'58// CHECK-NEXT: adr z0.d, [z0.d, z0.d, sxtw #4]59// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:60 61 62// --------------------------------------------------------------------------//63// Negative tests for instructions that are incompatible with movprfx64 65movprfx z0.d, p0/z, z7.d66adr     z0.d, [z0.d, z0.d, sxtw #3]67// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov68// CHECK-NEXT: adr     z0.d, [z0.d, z0.d, sxtw #3]69// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:70 71movprfx z0, z772adr     z0.d, [z0.d, z0.d, sxtw #3]73// CHECK: [[@LINE-1]]:{{[0-9]+}}: error: instruction is unpredictable when following a movprfx, suggest replacing movprfx with mov74// CHECK-NEXT: adr     z0.d, [z0.d, z0.d, sxtw #3]75// CHECK-NOT: [[@LINE-1]]:{{[0-9]+}}:76