1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-25 14:02:52 +02:00
llvm-mirror/test/MC/ARM64/v128_lo-diagnostics.s
Tim Northover 907a18645b ARM64: diagnose use of v16-v31 in certain indexed NEON instructions.
Someone couldn't bear to have a completely orthogonal set of floating-point
registers, so we've got some instructions that only accept v0-v15 (coming in
ARMv9, V128_prime: you're allowed v2, v3, v5, v7, ...).

Anyway, we were permitting even the out of range registers during assembly
(CodeGen handled it correctly). This adds a diagnostic.

llvm-svn: 207412
2014-04-28 11:27:43 +00:00

12 lines
357 B
ArmAsm

// RUN: not llvm-mc -triple arm64 -mattr=neon %s 2> %t > /dev/null
// RUN: FileCheck %s < %t
sqrdmulh v0.8h, v1.8h, v16.h[0]
// CHECK: error: invalid operand for instruction
sqrdmulh h0, h1, v16.h[0]
// CHECK: error: invalid operand for instruction
sqdmull2 v0.4h, v1.8h, v16.h[0]
// CHECK: error: invalid operand for instruction