Los dispositivos iOS anteriores (iPhone, iPhone 3G, iPod touch de primera y segunda generación) tenían CPU que solo admitían el conjunto de instrucciones armv6. El iPhone 3G S (y el iPad y el iPod touch de tercera generación) tiene un procesador más nuevo que también es compatible con el conjunto de instrucciones de armv7. En general, armv7 es más rápido en estos procesadores más nuevos y se recomienda que al menos incluya una compilación armv7 en sus aplicaciones en el futuro (en una aplicación solo para iPad, probablemente solo pueda compilar para armv7).
Como señala Jasarien, el área de mayor diferencia entre los conjuntos de instrucciones es en operaciones de coma flotante. En armv6, las aplicaciones tendían a construirse usando el conjunto reducido de instrucciones Thumb para producir binarios más pequeños, pero el rendimiento del punto flotante del Thumb era terrible. Por lo tanto, era necesario desactivar Thumb porque quería cálculos de coma flotante más rápidos. En armv7, el conjunto de instrucciones Thumb-2 ya no tiene esta limitación, por lo que Apple recomienda que lo compile casi todo el tiempo.
Puede hacer que la configuración de Thumb build sea condicional para que esté desactivada para dispositivos más antiguos y para dispositivos más nuevos. Para hacer esto, vaya a la configuración de compilación de Xcode y seleccione la opción Compilar para el pulgar. Vaya al menú en la parte inferior izquierda de la pantalla y elija la opción Agregar condición de configuración de compilación. En la nueva condición de configuración de construcción, elija ARMv6 para la arquitectura, desactive Thumb para ello, agregue otra condición, elija ARMv7 para su arquitectura y habilite Thumb para ello.
De acuerdo con la respuesta de Stephen Canon here, las operaciones de coma flotante de precisión simple y doble son compatibles con el hardware en armv6.Descubrí que la aritmética de precisión simple tiene un rendimiento ligeramente mejor en esta plataforma, quizás debido a que más operaciones se ajustan a la caché. En armv7, la unidad de punto flotante de NEON SIMD solo funciona en operaciones de precisión simple, por lo que puede haber una gran diferencia en el rendimiento entre las operaciones de precisión simple y doble.
Otras cuestiones que podrían ser de interés sobre este tema incluyen:
pequeña corrección: es ARMv6 y ARMv7, no ARM6 y ARM7. Tenga en cuenta el 'v'. – lucius