---
title: Introduction to AltiVec/SSE Migration Guide
framework: performance
role: article
path: apple-archive/documentation/Performance/Conceptual/Accelerate_sse_migration/migration_intro
---

# Introduction to AltiVec/SSE Migration Guide

Explains how to convert PowerPC AltiVec code to Intel SSE code.

## Who Should Read This Document

Any developer who needs to port existing AltiVec code to SSE or vice versa, or who needs to write custom-optimized code for both architectures.

## Organization of This Document

This document is organized into the following chapters:

- [AltiVec to SSE Migration Overview](../migration_sse_overview/migration_sse_overview.html#//apple_ref/doc/uid/TP40002729-CH206-TPXREF101) This chapter introduces basic information on migrating vector-oriented code from the PowerPC AltiVec extensions to the Intel x86 SSE extensions. - [Programming SSE in C](../migration_sse_C/migration_sse_C.html#//apple_ref/doc/uid/TP40002729-CH247-TPXREF101) This chapter describes the intrinsics and data types provided for programming SSE in C. - [Translating Altivec to SSE](../migration_sse_translation/migration_sse_translation.html#//apple_ref/doc/uid/TP40002729-CH248-TPXREF101) This chapter provides in-depth tutorial information on translating AltiVec to to SSE code.

## Assumptions

The document assumes the following:

- Your application runs in Mac OS X.Your application can use any of the Mac OS X development environments: Carbon, Cocoa, Java, or BSD UNIX.If your application runs in a version of the Mac OS that is earlier than Mac OS X version 10.0, you should first read [Carbon Porting Guide](../../../../Carbon/Conceptual/carbon_porting_guide/cpg_intro_struct/cpg_intro_struct.html#//apple_ref/doc/uid/TP30000991) and Technical Note TN2003 [Moving Your Code to Mac OS X](http://developer.apple.com/technotes/tn/tn2003.html).If your application runs in the UNIX operating system but not specifically in Mac OS X, you should first read [Porting UNIX/Linux Applications to Mac OS X](../../../../Porting/Conceptual/PortingUnix/intro/intro.html#//apple_ref/doc/uid/TP30001003).If your application runs only in the Windows operating system, you should first read [Porting to Mac OS X from Windows Win32 API](../../../../Porting/Conceptual/win32porting/win32porting.html#//apple_ref/doc/uid/10000190i). - You know how to use Xcode.Currently Xcode is the only GUI tool available that compiles code to run universally. If you are unfamiliar with Xcode, you might want to take a look at Xcode 2.1 User Guide.If you have been using CodeWarrior, you should read [Moving Projects from CodeWarrior to Xcode](../../../../DeveloperTools/Conceptual/MovingProjectsToXcode/migration_overview/migration_overview.html#//apple_ref/doc/uid/20001708).

## Conventions

The term *x86* is a generic term used in some parts of this book to refer to the class of microprocessors manufactured by Intel. This book uses the term x86 as a synonym for IA-32 (Intel Architecture 32-bit).

[Next](../migration_sse_overview/migration_sse_overview.html)

Copyright © 2005 Apple Computer, Inc. All Rights Reserved. [Terms of Use](http://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](http://www.apple.com/privacy/) | Updated: 2005-09-08
