Home | History | Annotate | Download | only in CodeGen
      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 
      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