1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 19:12:56 +02:00
llvm-mirror/test/MC/AsmParser/inline-comments.ll
Nirav Dave 483683bb34 Provide support for preserving assembly comments
Preserve assembly comments from input in output assembly and flags to
toggle property. This is on by default for inline assembly and off in
llvm-mc.

Parsed comments are emitted immediately before an EOL which generally
places them on the expected line.

Reviewers: rtrieu, dwmw2, rnk, majnemer

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D20020

llvm-svn: 275058
2016-07-11 12:42:14 +00:00

89 lines
2.8 KiB
LLVM

; RUN: llc %s -o - | sed -n -e '/#APP/,/#NO_APP/p' > %t
; RUN: sed -n -e 's/^;CHECK://p' %s > %t2
; RUN: diff %t %t2
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-unknown-linux-gnu"
; Function Attrs: nounwind uwtable
define void @foo() #0 {
entry:
call void asm sideeffect "", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: #NO_APP
call void asm sideeffect " ", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK:
;CHECK: #NO_APP
call void asm sideeffect "\0A", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK:
;CHECK:
;CHECK: #NO_APP
call void asm sideeffect "/*isolated c comment*/", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: #isolated c comment
;CHECK: #NO_APP
call void asm sideeffect "/**/", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: #
;CHECK: #NO_APP
call void asm sideeffect "/*comment with\0Anewline*/", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: #comment with
;CHECK: #newline
;CHECK: #NO_APP
call void asm sideeffect "//isolated line comment", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: #isolated line comment
;CHECK: #NO_APP
call void asm sideeffect "#isolated line comment", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: #isolated line comment
;CHECK: #NO_APP
call void asm sideeffect "nop /* after nop */", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: nop # after nop
;CHECK: #NO_APP
call void asm sideeffect "nop // after nop", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: nop # after nop
;CHECK: #NO_APP
call void asm sideeffect "nop # after nop", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: nop # after nop
;CHECK: #NO_APP
call void asm sideeffect "nop /* after explicit ended nop */", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: nop # after explicit ended nop
;CHECK: #NO_APP
call void asm sideeffect "nop # after explicit ended nop", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: nop # after explicit ended nop
;CHECK: #NO_APP
call void asm sideeffect "nop # after explicit end nop", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: nop # after explicit end nop
;CHECK: #NO_APP
call void asm sideeffect "/* before nop */ nop", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: nop # before nop
;CHECK: #NO_APP
call void asm sideeffect "//comment with escaped newline\0A", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: #comment with escaped newline
;CHECK:
;CHECK: #NO_APP
call void asm sideeffect "/*0*/xor/*1*/%eax,/*2*/%ecx/*3*///eol", "~{dirflag},~{fpsr},~{flags}"() #0
;CHECK: #APP
;CHECK: xorl %eax, %ecx #0 #1 #2 #3 #eol
;CHECK: #NO_APP
ret void
}
attributes #0 = { nounwind }
!llvm.ident = !{!0}
!0 = !{!"clang version 3.9.0 (trunk 268625) (llvm/trunk 268631)"}