llvm-mirror/test/MC/ARM/vorr-vbic-illegal-cases.s
Renato Golin 075db70d6a Add aliases for VAND imm to VBIC ~imm
On ARM NEON, VAND with immediate (16/32 bits) is an alias to VBIC ~imm with
the same type size. Adding that logic to the parser, and generating VBIC
instructions from VAND asm files.

This patch also fixes the validation routines for NEON splat immediates which
were wrong.

Fixes PR20702.

llvm-svn: 218450
2014-09-25 11:31:24 +00:00

66 lines
2.4 KiB
ArmAsm

@ RUN: not llvm-mc -triple=armv7-linux-gnueabi %s 2>&1 | FileCheck %s
.text
vorr.i32 d2, #0xffffffff
vorr.i32 q2, #0xffffffff
vorr.i32 d2, #0xabababab
vorr.i32 q2, #0xabababab
vorr.i16 q2, #0xabab
vorr.i16 q2, #0xabab
@ CHECK: error: invalid operand for instruction
@ CHECK: vorr.i32 d2, #0xffffffff
@ CHECK: error: invalid operand for instruction
@ CHECK: vorr.i32 q2, #0xffffffff
@ CHECK: error: invalid operand for instruction
@ CHECK: vorr.i32 d2, #0xabababab
@ CHECK: error: invalid operand for instruction
@ CHECK: vorr.i32 q2, #0xabababab
@ CHECK: error: invalid operand for instruction
@ CHECK: vorr.i16 q2, #0xabab
@ CHECK: error: invalid operand for instruction
@ CHECK: vorr.i16 q2, #0xabab
vbic.i32 d2, #0xffffffff
vbic.i32 q2, #0xffffffff
vbic.i32 d2, #0xabababab
vbic.i32 q2, #0xabababab
vbic.i16 d2, #0xabab
vbic.i16 q2, #0xabab
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 d2, #0xffffffff
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 q2, #0xffffffff
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 d2, #0xabababab
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 q2, #0xabababab
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i16 d2, #0xabab
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i16 q2, #0xabab
vbic.i32 d2, #0x03ffffff
vbic.i32 q2, #0x03ffff
vbic.i32 d2, #0x03ff
vbic.i32 d2, #0xff00ff
vbic.i16 d2, #0x03ff
vbic.i16 q2, #0xf0f0
vbic.i16 q2, #0xf0f0f0
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 d2, #0x03ffffff
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 q2, #0x03ffff
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 d2, #0x03ff
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i32 d2, #0xff00ff
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i16 d2, #0x03ff
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i16 q2, #0xf0f0
@ CHECK: error: invalid operand for instruction
@ CHECK: vbic.i16 q2, #0xf0f0f0