• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // REQUIRES: x86-registered-target
2 // RUN: %clang_cc1 %s -triple i386-apple-darwin10 -fasm-blocks -emit-llvm -o - | FileCheck %s --check-prefix=DARWIN
3 // RUN: %clang_cc1 %s -triple i686-pc-win32 -fasm-blocks -emit-llvm -o - | FileCheck %s --check-prefix=WINDOWS
4 
5 // On Windows, .align is in bytes, and on Darwin, .align is in log2 form. The
6 // Intel inline assembly parser should rewrite to the appropriate form depending
7 // on the platform.
8 
align_test()9 void align_test() {
10   __asm align 8
11   __asm align 16;
12   __asm align 128;
13   __asm ALIGN 256;
14 }
15 
16 // DARWIN-LABEL: define void @align_test()
17 // DARWIN: call void asm sideeffect inteldialect
18 // DARWIN-SAME: .align 3
19 // DARWIN-SAME: .align 4
20 // DARWIN-SAME: .align 7
21 // DARWIN-SAME: .align 8
22 // DARWIN-SAME: "~{dirflag},~{fpsr},~{flags}"()
23 
24 // WINDOWS-LABEL: define void @align_test()
25 // WINDOWS: call void asm sideeffect inteldialect
26 // WINDOWS-SAME: .align 8
27 // WINDOWS-SAME: .align 16
28 // WINDOWS-SAME: .align 128
29 // WINDOWS-SAME: .align 256
30 // WINDOWS-SAME: "~{dirflag},~{fpsr},~{flags}"()
31