Index: llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp =================================================================== --- llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -10230,6 +10230,8 @@ if (!isThumb() && (MissingFeatures & Feature_IsThumb2) && (MissingFeatures & ~(Feature_IsThumb2 | Feature_IsThumb))) break; + if (isMClass() && (MissingFeatures & Feature_HasNEON)) + break; NearMissMessage Message; Message.Loc = IDLoc; Index: llvm/trunk/test/MC/ARM/vfp4.s =================================================================== --- llvm/trunk/test/MC/ARM/vfp4.s +++ llvm/trunk/test/MC/ARM/vfp4.s @@ -23,7 +23,7 @@ @ ARM: vfma.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x08,0xf2] @ THUMB: vfma.f32 q2, q4, q0 @ encoding: [0x08,0xef,0x50,0x4c] -@ THUMB_V7EM-ERRORS: error: instruction requires: NEON +@ THUMB_V7EM-ERRORS: error: invalid instruction @ THUMB_V7EM-ERRORS-NEXT: vfma.f32 q2, q4, q0 vfma.f32 q2, q4, q0 @@ -57,7 +57,7 @@ @ ARM: vfms.f32 q2, q4, q0 @ encoding: [0x50,0x4c,0x28,0xf2] @ THUMB: vfms.f32 q2, q4, q0 @ encoding: [0x28,0xef,0x50,0x4c] -@ THUMB_V7EM-ERRORS: error: instruction requires: NEON +@ THUMB_V7EM-ERRORS: error: invalid instruction @ THUMB_V7EM-ERRORS-NEXT: vfms.f32 q2, q4, q0 vfms.f32 q2, q4, q0