Index: llvm/lib/Target/ARM/ARMSubtarget.cpp =================================================================== --- llvm/lib/Target/ARM/ARMSubtarget.cpp +++ llvm/lib/Target/ARM/ARMSubtarget.cpp @@ -235,9 +235,12 @@ if (isTargetMachO() && isTargetIOS() && getTargetTriple().isOSVersionLT(5, 0)) SupportsTailCall = false; + // Multi-instruction IT Blocks have been deprecated in ARMv8, additionally + // Windows does not permit them, even for older ARM versions. + switch (IT) { case DefaultIT: - RestrictIT = hasV8Ops() && !hasMinSize(); + RestrictIT = (hasV8Ops() && !hasMinSize()) || isTargetWindows(); break; case RestrictedIT: RestrictIT = true;