   }
 }
 
+@inline(never)
+internal func _parseASCIIOutlined<
+  CodeUnits : IteratorProtocol, Result: FixedWidthInteger
+>(
+  codeUnits: inout CodeUnits, radix: Result
+) -> Result?
+where CodeUnits.Element : UnsignedInteger {
+  return _parseASCII(codeUnits: &codeUnits, radix: radix)
+}
+
 extension FixedWidthInteger {
   /// Creates a new integer value from the given string and radix.
   ///

    else {
      let b = UnsafeBufferPointer(start: c.startUTF16, count: c.count)
      var i = b.makeIterator()
      result = _parseASCII(codeUnits: &i, radix: r)
    }
    guard _fastPath(result != nil) else { return nil }
    self = result!

    let result: Self?
    if _slowPath(c._baseAddress == nil) {
      var i = s.utf16.makeIterator()
      result = _parseASCIIOutlined(codeUnits: &i, radix: r)
    }
    else if _fastPath(c.elementWidth == 1), let a = c.asciiBuffer {
      var i = a.makeIterator()
