     self = unsafeBitCast(_representation, Float.self)
   }
   public init<T: BinaryFloatingPointType>(_ other: T) {
+    // rdar://16980851 #if does not work with 'switch'
+#if arch(i386) || arch(x86_64)
     switch other {
     case let f as Float:
       self = f

  //  Conversions from all floating-point types.
  init(_ value: Float)
  init(_ value: Double)
  init(_ value: Float80)
  
  //  TODO: where do conversions to/from string live?  IEEE-754 requires
  //  conversions to/from decimal character and hexadecimal character

    default:
      fatalError()
    }
#else
    switch other {
    case let f as Float:
      self = f
    case let d as Double:
      self = Float(d)
    default:
      fatalError()
    }
#endif
  }
  public func roundToIntegralTiesToAway() -> Float { return roundf(self) }
  public func roundToIntegralTowardZero() -> Float { return truncf(self) }
