1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc < %s -triple armv7-unknown-unknown -show-encoding -mattr=+neon,+vfp4 | FileCheck %s --check-prefix=ARM 2*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc < %s -triple thumbv7-unknown-unknown -show-encoding -mattr=+neon,+vfp4 | FileCheck %s --check-prefix=THUMB 3*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc < %s -triple thumbv7-unknown-unknown -show-encoding -mcpu=cortex-m4 > %t 2> %t2 4*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck %s < %t --check-prefix=THUMB_V7EM 5*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck %s < %t2 --check-prefix=THUMB_V7EM-ERRORS 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Worker@ ARM: vfma.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0xe2,0xee] 8*9880d681SAndroid Build Coastguard Worker@ THUMB: vfma.f64 d16, d18, d17 @ encoding: [0xe2,0xee,0xa1,0x0b] 9*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: invalid operand for instruction 10*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfma.f64 d16, d18, d17 11*9880d681SAndroid Build Coastguard Workervfma.f64 d16, d18, d17 12*9880d681SAndroid Build Coastguard Worker 13*9880d681SAndroid Build Coastguard Worker@ ARM: vfma.f32 s2, s4, s0 @ encoding: [0x00,0x1a,0xa2,0xee] 14*9880d681SAndroid Build Coastguard Worker@ THUMB: vfma.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x00,0x1a] 15*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM: vfma.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x00,0x1a] 16*9880d681SAndroid Build Coastguard Workervfma.f32 s2, s4, s0 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker@ ARM: vfma.f32 d16, d18, d17 @ encoding: [0xb1,0x0c,0x42,0xf2] 19*9880d681SAndroid Build Coastguard Worker@ THUMB: vfma.f32 d16, d18, d17 @ encoding: [0x42,0xef,0xb1,0x0c] 20*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: invalid operand for instruction 21*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfma.f32 d16, d18, d17 22*9880d681SAndroid Build Coastguard Workervfma.f32 d16, d18, d17 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Worker@ ARM: vfma.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x08,0xf2] 25*9880d681SAndroid Build Coastguard Worker@ THUMB: vfma.f32 q2, q4, q0 @ encoding: [0x08,0xef,0x50,0x4c] 26*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: instruction requires: NEON 27*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfma.f32 q2, q4, q0 28*9880d681SAndroid Build Coastguard Workervfma.f32 q2, q4, q0 29*9880d681SAndroid Build Coastguard Worker 30*9880d681SAndroid Build Coastguard Worker@ ARM: vfnma.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0xd2,0xee] 31*9880d681SAndroid Build Coastguard Worker@ THUMB: vfnma.f64 d16, d18, d17 @ encoding: [0xd2,0xee,0xe1,0x0b] 32*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: invalid operand for instruction 33*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfnma.f64 d16, d18, d17 34*9880d681SAndroid Build Coastguard Workervfnma.f64 d16, d18, d17 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Worker@ ARM: vfnma.f32 s2, s4, s0 @ encoding: [0x40,0x1a,0x92,0xee] 37*9880d681SAndroid Build Coastguard Worker@ THUMB: vfnma.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x40,0x1a] 38*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM: vfnma.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x40,0x1a] 39*9880d681SAndroid Build Coastguard Workervfnma.f32 s2, s4, s0 40*9880d681SAndroid Build Coastguard Worker 41*9880d681SAndroid Build Coastguard Worker@ ARM: vfms.f64 d16, d18, d17 @ encoding: [0xe1,0x0b,0xe2,0xee] 42*9880d681SAndroid Build Coastguard Worker@ THUMB: vfms.f64 d16, d18, d17 @ encoding: [0xe2,0xee,0xe1,0x0b] 43*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: invalid operand for instruction 44*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfms.f64 d16, d18, d17 45*9880d681SAndroid Build Coastguard Workervfms.f64 d16, d18, d17 46*9880d681SAndroid Build Coastguard Worker 47*9880d681SAndroid Build Coastguard Worker@ ARM: vfms.f32 s2, s4, s0 @ encoding: [0x40,0x1a,0xa2,0xee] 48*9880d681SAndroid Build Coastguard Worker@ THUMB: vfms.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x40,0x1a] 49*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM: vfms.f32 s2, s4, s0 @ encoding: [0xa2,0xee,0x40,0x1a] 50*9880d681SAndroid Build Coastguard Workervfms.f32 s2, s4, s0 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Worker@ ARM: vfms.f32 d16, d18, d17 @ encoding: [0xb1,0x0c,0x62,0xf2] 53*9880d681SAndroid Build Coastguard Worker@ THUMB: vfms.f32 d16, d18, d17 @ encoding: [0x62,0xef,0xb1,0x0c] 54*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: invalid operand for instruction 55*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfms.f32 d16, d18, d17 56*9880d681SAndroid Build Coastguard Workervfms.f32 d16, d18, d17 57*9880d681SAndroid Build Coastguard Worker 58*9880d681SAndroid Build Coastguard Worker@ ARM: vfms.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x28,0xf2] 59*9880d681SAndroid Build Coastguard Worker@ THUMB: vfms.f32 q2, q4, q0 @ encoding: [0x28,0xef,0x50,0x4c] 60*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: instruction requires: NEON 61*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfms.f32 q2, q4, q0 62*9880d681SAndroid Build Coastguard Workervfms.f32 q2, q4, q0 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Worker@ ARM: vfnms.f64 d16, d18, d17 @ encoding: [0xa1,0x0b,0xd2,0xee] 65*9880d681SAndroid Build Coastguard Worker@ THUMB: vfnms.f64 d16, d18, d17 @ encoding: [0xd2,0xee,0xa1,0x0b] 66*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS: error: invalid operand for instruction 67*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM-ERRORS-NEXT: vfnms.f64 d16, d18, d17 68*9880d681SAndroid Build Coastguard Workervfnms.f64 d16, d18, d17 69*9880d681SAndroid Build Coastguard Worker 70*9880d681SAndroid Build Coastguard Worker@ ARM: vfnms.f32 s2, s4, s0 @ encoding: [0x00,0x1a,0x92,0xee] 71*9880d681SAndroid Build Coastguard Worker@ THUMB: vfnms.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x00,0x1a] 72*9880d681SAndroid Build Coastguard Worker@ THUMB_V7EM: vfnms.f32 s2, s4, s0 @ encoding: [0x92,0xee,0x00,0x1a] 73*9880d681SAndroid Build Coastguard Workervfnms.f32 s2, s4, s0 74