187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// REQUIRES: x86-registered-target
287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 %s -triple i386-apple-darwin10 -fasm-blocks -emit-llvm -o - | FileCheck %s --check-prefix=DARWIN
387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// RUN: %clang_cc1 %s -triple i686-pc-win32 -fasm-blocks -emit-llvm -o - | FileCheck %s --check-prefix=WINDOWS
487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar
587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// On Windows, .align is in bytes, and on Darwin, .align is in log2 form. The
687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// Intel inline assembly parser should rewrite to the appropriate form depending
787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// on the platform.
887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar
987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainarvoid align_test() {
1087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar  __asm align 8
1187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar  __asm align 16;
1287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar  __asm align 128;
1387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar  __asm ALIGN 256;
1487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar}
1587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar
1687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// DARWIN-LABEL: define void @align_test()
1787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// DARWIN: call void asm sideeffect inteldialect
1887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// DARWIN-SAME: .align 3
1987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// DARWIN-SAME: .align 4
2087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// DARWIN-SAME: .align 7
2187d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// DARWIN-SAME: .align 8
2287d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// DARWIN-SAME: "~{dirflag},~{fpsr},~{flags}"()
2387d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar
2487d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// WINDOWS-LABEL: define void @align_test()
2587d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// WINDOWS: call void asm sideeffect inteldialect
2687d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// WINDOWS-SAME: .align 8
2787d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// WINDOWS-SAME: .align 16
2887d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// WINDOWS-SAME: .align 128
2987d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// WINDOWS-SAME: .align 256
3087d948ecccffea9e9e37d0d053b246e2d6d6c47bPirama Arumuga Nainar// WINDOWS-SAME: "~{dirflag},~{fpsr},~{flags}"()
31