|  | // RUN: %clang_cc1 -w -O2 -fblocks -triple i386-pc-linux-gnu -target-cpu pentium4 -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,LINUX | 
|  | // RUN: %clang_cc1 -w -O2 -fblocks -triple i386-netbsd -target-cpu pentium4 -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,NETBSD | 
|  | // RUN: %clang_cc1 -w -O2 -fblocks -triple i386-apple-darwin9 -target-cpu yonah -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,DARWIN | 
|  | // RUN: %clang_cc1 -w -O2 -fblocks -triple i386-pc-elfiamcu -mfloat-abi soft -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,IAMCU | 
|  | // RUN: %clang_cc1 -w -O2 -fblocks -triple i386-pc-win32 -emit-llvm -o - %s | FileCheck %s --check-prefixes=CHECK,WIN32 | 
|  |  | 
|  | #include <mmintrin.h> | 
|  | __m64 m64; | 
|  | void callee(__m64 __m1, __m64 __m2); | 
|  | __m64 caller(__m64 __m1, __m64 __m2) | 
|  | { | 
|  | // LINUX-LABEL: define x86_mmx @caller(x86_mmx %__m1.coerce, x86_mmx %__m2.coerce) | 
|  | // LINUX: tail call void @callee(x86_mmx %__m2.coerce, x86_mmx %__m1.coerce) | 
|  | // LINUX: ret x86_mmx | 
|  | // NETBSD-LABEL: define x86_mmx @caller(x86_mmx %__m1.coerce, x86_mmx %__m2.coerce) | 
|  | // NETBSD: tail call void @callee(x86_mmx %__m2.coerce, x86_mmx %__m1.coerce) | 
|  | // NETBSD: ret x86_mmx | 
|  | // DARWIN-LABEL: define i64 @caller(i64 %__m1.coerce, i64 %__m2.coerce) | 
|  | // DARWIN: tail call void @callee(i64 %__m2.coerce, i64 %__m1.coerce) | 
|  | // DARWIN: ret i64 | 
|  | // IAMCU-LABEL: define <1 x i64> @caller(i64 %__m1.coerce, i64 %__m2.coerce) | 
|  | // IAMCU: tail call void @callee(i64 %__m2.coerce, i64 %__m1.coerce) | 
|  | // IAMCU: ret <1 x i64> | 
|  | // WIN32-LABEL: define dso_local <1 x i64> @caller(i64 %__m1.coerce, i64 %__m2.coerce) | 
|  | // WIN32: call void @callee(i64 %__m2.coerce, i64 %__m1.coerce) | 
|  | // WIN32: ret <1 x i64> | 
|  | callee(__m2, __m1); | 
|  | return m64; | 
|  | } |