Index: lib/Target/ARM/AsmParser/ARMAsmParser.cpp =================================================================== --- lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -8721,6 +8721,10 @@ // Returns true if Inst is unpredictable if it is in and IT block, but is not // the last instruction in the block. bool ARMAsmParser::isITBlockTerminator(MCInst &Inst) const { + + if (Inst.getOpcode() == ARM::tSVC) + return false; + const MCInstrDesc &MCID = MII.get(Inst.getOpcode()); // All branch & call instructions terminate IT blocks. Index: test/MC/ARM/basic-thumb2-instructions.s =================================================================== --- test/MC/ARM/basic-thumb2-instructions.s +++ test/MC/ARM/basic-thumb2-instructions.s @@ -3113,12 +3113,18 @@ svceq #255 it ne swine #33 + itt eq + svceq #0 + svceq #1 @ CHECK: svc #0 @ encoding: [0x00,0xdf] @ CHECK: it eq @ encoding: [0x08,0xbf] @ CHECK: svceq #255 @ encoding: [0xff,0xdf] @ CHECK: it ne @ encoding: [0x18,0xbf] @ CHECK: svcne #33 @ encoding: [0x21,0xdf] +@ CHECK: itt eq @ encoding: [0x04,0xbf] +@ CHECK: svceq #0 @ encoding: [0x00,0xdf] +@ CHECK: svceq #1 @ encoding: [0x01,0xdf] @------------------------------------------------------------------------------