Changeset View
Changeset View
Standalone View
Standalone View
test/CodeGen/x86_32-m64.c
- This file was added.
// 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-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 | |||||
// 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; | |||||
} |