āļāļĩāđāļāļ·āļāļāļģāļŠāļąāđāļ FileCheck-3.6 āļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļĢāļĩāļĒāļāđāļāđāđāļāļāļđāđāđāļŦāđāļāļĢāļīāļāļēāļĢāđāļŪāļŠāļāđāļāļĢāļĩāļāļāļ OnWorks āđāļāļĒāđāļāđāļŦāļāļķāđāļāđāļāđāļ§āļīāļĢāđāļāļŠāđāļāļāļąāļāļāļāļāđāļĨāļāđāļāļĢāļĩāļāļāļāđāļĢāļē āđāļāđāļ Ubuntu Online, Fedora Online, āđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ Windows āļŦāļĢāļ·āļāđāļāļĢāđāļāļĢāļĄāļāļģāļĨāļāļāļāļāļāđāļĨāļāđāļāļāļ MAC OS
āđāļāļĢāļāļāļēāļĢ:
āļāļ·āđāļ
FileCheck - āļāļąāļ§āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđāļāļąāļāļāļđāđāļĢāļđāļāđāļāļāļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļ
āđāļĢāļ·āđāļāļāļĒāđāļ
āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāļ·āđāļāđāļāļĨāđāļāļĩāđāļāļĢāļāļāļąāļ [--check-āļāļģāļāļģāļŦāļāđāļē=XXX] [--strict-āļāđāļāļāļ§āđāļēāļ]
DESCRIPTION
āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāđāļēāļāļŠāļāļāđāļāļĨāđ (āļŦāļāļķāđāļāđāļāļĨāđāļāļēāļāļāļīāļāļāļļāļāļĄāļēāļāļĢāļāļēāļ āđāļĨāļ°āļāļĩāļāđāļāļĨāđāļŦāļāļķāđāļāļĢāļ°āļāļļāđāļ§āđāđāļāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļ)
āđāļĨāļ°āđāļāđāļāļąāļāļŦāļāļķāđāļāđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļāļāļĩāļāļāļąāļāļŦāļāļķāđāļ āļĨāļąāļāļĐāļāļ°āļāļēāļĢāļāļģāļāļēāļāļāļĩāđāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļāļĒāđāļēāļāļĒāļīāđāļāļŠāļģāļŦāļĢāļąāļāļāļļāļāļāļāļŠāļāļ
āļāļķāđāļāļāđāļāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļāļĨāļĨāļąāļāļāđāļāļāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļēāļāļāļĒāđāļēāļ (āđāļāđāļ LLC) āļĄāļĩāļāļ§āļēāļĄāļāļēāļāļŦāļ§āļąāļ
āļāđāļāļĄāļđāļĨ (āđāļāđāļ movsd āļāļēāļ esp āļŦāļĢāļ·āļāļāļ°āđāļĢāļāđāļāļēāļĄāļāļĩāđāļāđāļēāļŠāļāđāļ) āļāļĩāđāļāđāļāļĨāđāļēāļĒāļāļąāļ
āļāļĩāđāļāļ°āđāļāđ grepāđāļāđāđāļāđāļĢāļąāļāļāļēāļĢāļāļĢāļąāļāđāļŦāđāđāļŦāļĄāļēāļ°āļŠāļĄāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļđāđāļāļīāļāļāļļāļāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļāļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢāđāļāđāļāļĨāđāđāļāļĩāļĒāļ§āđāļa
āļāļģāļŠāļąāđāļāđāļāļāļēāļ°
āļāļ·āđāļāļāļĩāđ āļāļ·āđāļāđāļāļĨāđāļāļĩāđāļāļĢāļāļāļąāļ file āļĢāļ°āļāļļāđāļāļĨāđāļāļĩāđāļĄāļĩāļĢāļđāļāđāļāļāļāļĩāđāļāļ°āļāļąāļāļāļđāđ āđāļāļĨāđ
āđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļāđāļēāļāļāļēāļāļāļīāļāļāļļāļāļĄāļēāļāļĢāļāļēāļ āđāļ§āđāļāđāļāđāļ§āđāļē --input-āđāļāļĨāđ āđāļāđāļāļąāļ§āđāļĨāļ·āļāļ
OPTIONS
-āļāđāļ§āļĒāļāđāļ§āļĒ āļāļīāļĄāļāđāļŠāļĢāļļāļāļāļąāļ§āđāļĨāļ·āļāļāļāļĢāļĢāļāļąāļāļāļģāļŠāļąāđāļ
--check-āļāļģāļāļģāļŦāļāđāļē āļāļļāļāļŠāļĢāļĢāļ
FileCheck āļāđāļāļŦāļēāđāļāļ·āđāļāļŦāļēāļāļāļ āļāļ·āđāļāđāļāļĨāđāļāļĩāđāļāļĢāļāļāļąāļ āđāļāļ·āđāļāđāļŦāđāļĨāļ§āļāļĨāļēāļĒāđāļāđāļēāļāļąāļ āđāļāļĒ
āļāđāļēāđāļĢāļīāđāļĄāļāđāļ āļĢāļđāļāđāļāļāđāļŦāļĨāđāļēāļāļĩāđāļāļ°āļāļķāđāļāļāđāļāļāđāļ§āļĒ "āļāļĢāļ§āļāļŠāļāļ:" āļŦāļēāļāļāļļāļāļāđāļāļāļāļēāļĢāđāļāđ a
āļāļģāļāļģāļŦāļāđāļēāļāđāļēāļāļāļąāļ (āđāļāđāļ āđāļāļ·āđāļāļāļāļēāļāđāļāļĨāđāļāļīāļāļāļļāļāđāļāļĩāļĒāļ§āļāļąāļāļāļģāļĨāļąāļāļāļĢāļ§āļāļŠāļāļāļŦāļĨāļēāļĒāđāļāļĨāđāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļ
āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļŦāļĢāļ·āļāļāļąāļ§āđāļĨāļ·āļāļ) the --check-āļāļģāļāļģāļŦāļāđāļē āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāđāļ§āļĒāđāļŦāđāļāļļāļāļĢāļ°āļāļļāļŦāļāļķāđāļāļŦāļĢāļ·āļāļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢ
āļāļģāļāļģāļŦāļāđāļēāđāļāļ·āđāļāđāļŦāđāļāļĢāļāļāļąāļ āļāļģāļāļģāļŦāļāđāļēāļŦāļĨāļēāļĒāļāļģāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļŠāļāļāļāļĩāđāļāļēāļāđāļāļĨāļĩāđāļĒāļāļŠāļģāļŦāļĢāļąāļ
āļāļąāļ§āđāļĨāļ·āļāļāļāļēāļĢāļĢāļąāļāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļ āđāļāđāļāļĢāļĢāļāļąāļāļŠāđāļ§āļāđāļŦāļāđāļĒāļąāļāļāļāđāļŦāļĄāļ·āļāļāđāļāļīāļĄ
--input-āđāļāļĨāđ āļāļ·āđāļāđāļāļĨāđ
āđāļāļĨāđāļāļĩāđāļāļ°āļāļĢāļ§āļāļŠāļāļ (āļāđāļēāđāļĢāļīāđāļĄāļāđāļāļāļ·āļ stdin)
--strict-āļāđāļāļāļ§āđāļēāļ
āļāļēāļĄāļāđāļēāđāļĢāļīāđāļĄāļāđāļ FileCheck āļāļ°āļāļģāļŦāļāļāļāđāļāļāļ§āđāļēāļāđāļāļ§āļāļāļāļāļāļāļāļīāļāļāļļāļ (āļāđāļāļāļ§āđāļēāļāđāļĨāļ°āđāļāđāļ)
āļāļķāđāļāļāļģāđāļŦāđāļĨāļ°āđāļ§āđāļāļāļ§āļēāļĄāđāļāļāļāđāļēāļāđāļŦāļĨāđāļēāļāļĩāđ (āļāđāļāļāļ§āđāļēāļāļāļ°āļāļĢāļāļāļąāļāđāļāđāļ) NS
--strict-āļāđāļāļāļ§āđāļēāļ āļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļīāļāļāļēāļĢāđāļāđāļāļēāļāļĨāļąāļāļĐāļāļ°āļāļēāļĢāļāļģāļāļēāļāļāļĩāđ āļĨāļģāļāļąāļāļŠāļīāđāļāļŠāļļāļāļāļĢāļĢāļāļąāļāļāļ·āļ
āļāļąāļāļāļąāļāļīāđāļŦāđāđāļāđāļāļŠāđāļāļĨāđ UNIX \n āđāļāļāļļāļāđāļŦāļĄāļ
--āđāļāļĒāļāļĢāļīāļĒāļēāļĒ-āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ āļĢāļđāļāđāļāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļ
āđāļāļīāđāļĄāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāđāļāļīāļāļĨāļāđāļāļĒāļāļąāļĒāļŠāļģāļŦāļĢāļąāļāļĢāļđāļāđāļāļāļāļĩāđāļĢāļ°āļāļļāļĢāļ°āļŦāļ§āđāļēāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļĩāđāđāļāđāļāļāļ§āļ
āļāļąāļ§āđāļĨāļ·āļāļāļāļĩāđāļāļāļļāļāļēāļāđāļŦāđāđāļāļĩāļĒāļāļāļēāļĢāļāļāļŠāļāļāļāļĩāđāđāļāđāļĄāļāļ§āļāļāļķāđāļāđāļāļĒāđāļĄāđāļāđāļāļāļāļĢāļĢāļāļļāļāđāļ§āļĒ āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđs.
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ, "--āđāļāļĒāļāļĢāļīāļĒāļēāļĒ-āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ āļāļģāđāļāļ·āļāļ:" āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāđāļĄāļ·āđāļāļāļģāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāļ§āļīāļāļīāļāļāļąāļĒ
āļāđāļāļāļ§āļēāļĄāļāļēāļāđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĩāđāđāļĄāđāļĄāļĩāļāļąāļ§āđāļĨāļ·āļāļāļāļĨāđāļēāļĒāļāļąāļ āđāļŠāļĩāļĒāļāļāļąāļāļāļĢāļēāļ§ -āļāļĢāļ§āļāļŠāļāļ. āļāđāļ§āļĒāļŠāļīāđāļāļāļĩāđ
āļāļąāļ§āđāļĨāļ·āļāļ FileCheck āļāļ°āļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļāļīāļāļāļļāļāđāļĄāđāļĄāļĩāļāļģāđāļāļ·āļāļāļāļĩāđāđāļĄāđāļāļĢāļāļāļāļĨāļļāļĄāđāļāļĒ
āđāļ āļāļĢāļ§āļāļŠāļāļ: āļĢāļđāļāđāļāļ
-version
āđāļŠāļāļāļŦāļĄāļēāļĒāđāļĨāļāđāļ§āļāļĢāđāļāļąāļāļāļāļāđāļāļĢāđāļāļĢāļĄāļāļĩāđ
EXIT āļŠāļāļēāļāļ āļēāļ
If āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāļĢāļ§āļāļŠāļāļāļ§āđāļēāđāļāļĨāđāļāļĢāļāļāļąāļāđāļāļ·āđāļāļŦāļēāļāļĩāđāļāļēāļāđāļ§āđ āļāļāļāļāļēāļāđāļāļĨāđāļāđāļ§āļĒ 0
āļĄāļīāļāļ°āļāļąāđāļ āļāđāļēāđāļĄāđāđāļāđ āļŦāļĢāļ·āļāđāļāļīāļāļāđāļāļāļīāļāļāļĨāļēāļāļāļķāđāļ āļĄāļąāļāļāļ°āļāļāļāļāđāļ§āļĒāļāđāļēāļāļĩāđāđāļĄāđāđāļāđāļĻāļđāļāļĒāđ
āļāļēāļĢāļŠāļāļ
āđāļāļĒāļāļąāđāļ§āđāļāđāļĨāđāļ§ FileCheck āļāļ°āđāļāđāļāļēāļāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāļāļāļāļāļĒ LLVM āļāļķāđāļāļāļđāļāđāļĢāļĩāļĒāļāđāļāđāļāļāļāļĢāļĢāļāļąāļ RUN āļāļāļ
āļāļēāļĢāļāļāļŠāļāļ āļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļĒāđ āļāļāļāļāļēāļĢāđāļāđ FileCheck āļāļēāļāļāļĢāļĢāļāļąāļ RUN āļĄāļĩāļĨāļąāļāļĐāļāļ°āļāļąāļāļāļĩāđ:
; āđāļĢāļĩāļĒāļāđāļāđ: llvm-as < %s | llc -march=x86-64 | āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ %s
āđāļ§āļĒāļēāļāļĢāļāđāļāļĩāđāļāļāļāļ§āđāļēāļāļ°āđāļāļāđāđāļāļĨāđāļāļąāļāļāļļāļāļąāļ ("%s") āđāļāđāļēāđāļāļāđāļēāļāđāļ llvm-āđāļāđāļ, āļāđāļāļāļĩāđāđāļāđāļē LLCāđāļĨāđāļ§
āļāđāļāļŠāđāļāļāļāļāļāļāļ LLC āđāļāđāļēāđāļ āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ. āļāļķāđāļāļŦāļĄāļēāļĒāļāļ§āļēāļĄāļ§āđāļē FileCheck āļāļ°āļāļĢāļ§āļāļŠāļāļ
āļāļīāļāļāļļāļāļĄāļēāļāļĢāļāļēāļ (āđāļāļēāļāđāļāļļāļ llc) āđāļāļĩāļĒāļāļāļąāļāļāļēāļĢāđāļāļīāļ§āđāļĄāļāļāđāļāļ·āđāļāđāļāļĨāđāļāļĩāđāļĢāļ°āļāļļ (āļāđāļāļāļāļąāļ .NS
āđāļāļĨāđāļāļĩāđāļĢāļ°āļāļļāđāļāļĒ "%s") āđāļāļ·āđāļāļāļđāļ§āđāļēāļĄāļąāļāļāļģāļāļēāļāļāļĒāđāļēāļāđāļĢ āļĄāļēāļāļđāļŠāđāļ§āļāļāļĩāđāđāļŦāļĨāļ·āļāļāļāļ .NS āđāļāļĨāđ
(āļŦāļĨāļąāļāđāļŠāđāļ RUN):
āļāļģāļŦāļāļāđāļāđāļāđāļĄāļāļ° @sub1(i32* %p, i32 %v) {
āļĢāļēāļĒāļāļēāļĢ:
; āļāļĢāļ§āļāļŠāļāļ: sub1:
; āļāļĢāļ§āļāļŠāļāļ: subl
%0 = āļāļēāļĢāđāļāļĢāļŦāļēāļ i32 @llvm.atomic.load.sub.i32.p0i32(i32* %p, i32 %v)
āđāļĨāļīāļāđāļāđāļāđāļĄāļāļ°
}
āļāļģāļŦāļāļāđāļāđāļāđāļĄāļāļ° @ inc4 (i64* %p) {
āļĢāļēāļĒāļāļēāļĢ:
; āļāļĢāļ§āļāļŠāļāļ: inc4:
; āļāļĢāļ§āļāļŠāļāļ: incq
%0 = āđāļĢāļĩāļĒāļāļŦāļēāļ i64 @llvm.atomic.load.add.i64.p0i64(i64* %p, i64 1)
āđāļĨāļīāļāđāļāđāļāđāļĄāļāļ°
}
āļāļĩāđāļāļĩāđāļāļļāļāļŠāļēāļĄāļēāļĢāļāđāļŦāđāļāļāļēāļāļŠāđāļ§āļ "āļāļĢāļ§āļāļŠāļāļ:" āļāļĢāļĢāļāļąāļāļāļĩāđāļĢāļ°āļāļļāđāļāļāļ§āļēāļĄāļāļīāļāđāļŦāđāļ āļāļāļāļāļĩāđāļāļļāļāļŠāļēāļĄāļēāļĢāļāļāļđāđāļāđāļ§āđāļēāđāļāļĨāđāđāļāđāļāļāļĒāđāļēāļāđāļĢ
āļāļđāļāļāđāļāđāļāđāļēāđāļāđāļ llvm-āđāļāđāļāđāļĨāđāļ§ LLCāđāļĨāļ°āļāļĨāļĨāļąāļāļāđāļāļāļāļĢāļŦāļąāļŠāđāļāļĢāļ·āđāļāļāļāļ·āļāļŠāļīāđāļāļāļĩāđāđāļĢāļēāļāļģāļĨāļąāļāļāļĢāļ§āļāļŠāļāļ
FileCheck āļāļĢāļ§āļāļŠāļāļāđāļāļēāļāđāļāļļāļāļĢāļŦāļąāļŠāđāļāļĢāļ·āđāļāļāđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļāļĢāļāļāļąāļ "āļāļĢāļ§āļāļŠāļāļ:" āđāļŠāđāļ
āļĢāļ°āļāļļ.
āđāļ§āļĒāļēāļāļĢāļāđāļāļāļ "āļāļĢāļ§āļāļŠāļāļ:" āļāļĢāļĢāļāļąāļāļāļąāđāļāļāđāļēāļĒāļĄāļēāļ: āđāļāđāļāļŠāļāļĢāļīāļāļāļāļāļĩāđāļāļĩāđāļāđāļāļāđāļāļīāļāļāļķāđāļāđāļ
āļāļģāļŠāļąāđāļ. FileCheck āđāļĢāļīāđāļĄāļāđāļāļāļĩāđāļāļ°āļĨāļ°āđāļ§āđāļāļāļ§āļēāļĄāđāļāļāļāđāļēāļāļāļāļāļāđāļāļāļ§āđāļēāļāđāļāđāļāļ§āļāļāļ (āđāļāđāļ āļāđāļāļāļ§āđāļēāļ is
āļāļāļļāļāļēāļāđāļŦāđāļāļąāļāļāļđāđāđāļāđāļ) āđāļāđāļĄāļīāļāļ°āļāļąāđāļ āđāļāļ·āđāļāļŦāļēāļāļāļ "āļāļĢāļ§āļāļŠāļāļ:" āļāđāļāļāđāļāđāļāļĢāļĢāļāļąāļāđāļāļ·āđāļ
āļāļąāļāļāļđāđāļāļēāļāļŠāļīāđāļāđāļāđāļāļĨāđāļāļāļŠāļāļāļāļļāļāļāļĢāļ°āļāļēāļĢ
āļŠāļīāđāļāļŦāļāļķāđāļāļāļĩāđāļāļĩāđāļāļĩāđāļĒāļ§āļāļąāļ FileCheck (āđāļāļĩāļĒāļāļāļąāļ grep) āļāļ·āļāļāđāļ§āļĒāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļĢāļ§āļĄāļāļĢāļāļĩāļāļāļŠāļāļāđāļāđ
āļĢāļ§āļĄāļāļąāļāđāļāđāļāļāļĨāļļāđāļĄāļāļĢāļĢāļāļ° āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āđāļāļ·āđāļāļāļāļēāļāļāļēāļĢāļāļāļŠāļāļāļāđāļēāļāļāđāļāđāļāđāļāļāļēāļĢāļāļĢāļ§āļāļŦāļē
"āļĒāđāļāļĒ1:"āđāļĨāļ°"āļĢāļ§āļĄ4:" āļāđāļēāļĒāļāļģāļāļąāļāļāļ°āđāļĄāđāļāļĢāļāļāļąāļāđāļ§āđāļāđāļāđāļāļ°āļĄāļĩ "āļĒāđāļāļĒ"āļĢāļ°āļŦāļ§āđāļēāļāļāļąāđāļ
āļāļĨāļēāļ āļŦāļēāļāļĄāļĩāļāļĒāļđāđāļāļĩāđāļāļ·āđāļāđāļāđāļāļĨāđ āļāļ°āđāļĄāđāļāļąāļ: "grep āļĒāđāļāļĒ"
āļāļĢāļāļāļąāļāļāđāļē "āļĒāđāļāļĒ" āļāļĒāļđāđāļāļĩāđāđāļāļāđāđāļāđāđāļāđāļāļĨāđ
āļāļ·āđāļāļāļĩāđ āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ -check-āļāļģāļāļģāļŦāļāđāļē āļāļąāļ§āđāļĨāļ·āļāļ
āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ -check-āļāļģāļāļģāļŦāļāđāļē āļāļąāļ§āđāļĨāļ·āļāļāļāđāļ§āļĒāđāļŦāđāļŠāļēāļĄāļēāļĢāļāļāļąāļāđāļāļĨāļ·āđāļāļāļāļēāļĢāļāļģāļŦāļāļāļāđāļēāļāļēāļĢāļāļāļŠāļāļāđāļāđāļŦāļĨāļēāļĒāđāļāļāļāļēāļ
āļŦāļāļķāđāļ .NS āđāļāļĨāđ. āļŠāļīāđāļāļāļĩāđāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāđāļāļŦāļĨāļēāļĒ āđ āļŠāļāļēāļāļāļēāļĢāļāđ āđāļāđāļ āļāļēāļĢāļāļāļŠāļāļāļāļĩāđāđāļāļāļāđāļēāļāļāļąāļ
āļāļąāļ§āđāļāļĢāļāļēāļāļŠāļāļēāļāļąāļāļĒāļāļĢāļĢāļĄāļāđāļ§āļĒ LLC. āļāļĩāđāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļĒāđ:
; āđāļĢāļĩāļĒāļāđāļāđ: llvm-as < %s | llc -mtriple=i686-apple-darwin9 -mattr=sse41 \
; āļ§āļīāđāļ: | FileCheck %s -check-prefix=X32
; āđāļĢāļĩāļĒāļāđāļāđ: llvm-as < %s | llc -mtriple=x86_64-apple-darwin9 -mattr=sse41 \
; āļ§āļīāđāļ: | FileCheck %s -check-prefix=X64
āļāļģāļŦāļāļ <4 x i32> @pinsrd_1 (i32 %s, <4 x i32> %tmp) āļāļģāļāļēāļĄ {
%tmp1 = āļāļāļāđāļāļĢāļ°āļāļāļāđāļāļĢāļ <4 x i32>; %tmp, i32 %s, i32 1
āļĒāđāļāļ <4 x i32> %tmp1
; X32: āļŦāļĄāļļāļrd_1:
; X32: āļŦāļĄāļļāļ $1, 4(%esp), %xmm0
; X64: āļŦāļĄāļļāļrd_1:
; X64: āļŦāļĄāļļāļ $1, %edi, %xmm0
}
āđāļāļāļĢāļāļĩāļāļĩāđ āđāļĢāļēāļāļģāļĨāļąāļāļāļāļŠāļāļāļ§āđāļēāđāļĢāļēāđāļāđāļĢāļąāļāļāļēāļĢāļŠāļĢāđāļēāļāđāļāđāļāļāļĩāđāļāļēāļāļŦāļ§āļąāļāļāđāļ§āļĒāļāļąāđāļāđāļāļ 32 āļāļīāļāđāļĨāļ°
āļāļēāļĢāļŠāļĢāđāļēāļāļĢāļŦāļąāļŠ 64 āļāļīāļ
āļāļ·āđāļāļāļĩāđ āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: āļāļģāļŠāļąāđāļ
āļāļēāļāļāļĢāļąāđāļāļāļļāļāļāđāļāļāļāļēāļĢāļāļąāļāļāļđāđāļāļĢāļĢāļāļąāļāđāļĨāļ°āļāđāļāļāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļāļēāļĢāļāļąāļāļāļđāđāđāļāļīāļāļāļķāđāļāļāļĢāļāļŦāļĢāļ·āļāđāļĄāđ
āļāļĢāļĢāļāļąāļāļāļĩāđāļāđāļāđāļāļ·āđāļāļāļāļąāļāđāļāļĒāđāļĄāđāļĄāļĩāļāļĢāļĢāļāļąāļāļāļ·āđāļāļāļąāđāļāļĢāļ°āļŦāļ§āđāļēāļāļāļ§āļāđāļāļē āđāļāļāļĢāļāļĩāļāļĩāđ āļāļļāļāļŠāļēāļĄāļēāļĢāļāđāļāđ "āļāļĢāļ§āļāļŠāļāļ:"
āđāļĨāļ° "āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ:" āļāļģāļŠāļąāđāļāđāļāļ·āđāļāļĢāļ°āļāļļāļŠāļīāđāļāļāļĩāđ āļŦāļēāļāļāļļāļāļĢāļ°āļāļļāļāļģāļāļģāļŦāļāđāļēāļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļĩāđāļāļģāļŦāļāļāđāļāļ
āđāļāļĩāļĒāļāđāļāđāđāļāđ "-āļāđāļāđāļ:" āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļŠāļīāđāļāļāļĩāđāđāļāđāđāļāđāļāļĨāļāļēāļĄāļāļĩāđāļāļļāļāļāļēāļāļŦāļ§āļąāļ:
āļāļģāļŦāļāļāđāļāđāļāđāļĄāļāļ° @t2(<2 x double>* %r, <2 x double>* %A, double %B) {
%tmp3 = āđāļŦāļĨāļ <2 x double>* %A, āļāļąāļāļāļģāđāļŦāļāđāļ 16
%tmp7 = āļāļēāļĢāđāļāļĢāļ <2 x double> undef, double %B, i32 0
%tmp9 = āļŠāļąāļāđāļāļĨāļĩāđāļĒāļāđāļ§āļāđāļāļāļĢāđ <2 x āļŠāļāļāđāļāđāļē> %tmp3,
<2 x āļŠāļāļāđāļāđāļē> %tmp7,
<2 x i32> < i32 0, i32 2 >
āđāļāđāļ <2 x double> %tmp9, <2 x double>* %r, āļāļąāļāļāļģāđāļŦāļāđāļ 16
āđāļĨāļīāļāđāļāđāļāđāļĄāļāļ°
; āļāļĢāļ§āļāļŠāļāļ: t2:
; āļāļĢāļ§āļāļŠāļāļ: movl 8(%esp), %eax
; āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: movapd (%eax), %xmm0
; āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: movhpd 12(%esp), %xmm0
; āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: movl 4(%esp), %eax
; āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: movapd %xmm0, (%eax)
; āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: āļĒāđāļāļāļāļĨāļąāļ
}
"āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ:" āļāļģāļŠāļąāđāļāļāļāļīāđāļŠāļāļāļīāļāļāļļāļāđāļ§āđāļāđāļāđāļāļ°āļĄāļĩāļāļēāļĢāļāļķāđāļāļāļĢāļĢāļāļąāļāđāļŦāļĄāđāļĢāļ°āļŦāļ§āđāļēāļāļĄāļąāļ
āđāļĨāļ°āļāļģāļŠāļąāđāļāļāđāļāļāļŦāļāđāļēāļāļĩāđ NS "āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ:" āđāļĄāđāļŠāļēāļĄāļēāļĢāļāđāļāđāļāļāļģāļŠāļąāđāļāđāļĢāļāđāļāđāļāļĨāđāđāļāđ
āļāļ·āđāļāļāļĩāđ āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ: āļāļģāļŠāļąāđāļ
"āļāļēāļĢāļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ:" directive āđāļāđāđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļŠāļāļĢāļīāļāđāļĄāđāđāļāļīāļāļāļķāđāļāļĢāļ°āļŦāļ§āđāļēāļāļŠāļāļ
āļāļēāļĢāđāļāđāļāļāļąāļ (āļŦāļĢāļ·āļāļāđāļāļāļāļąāļāđāļĢāļāļŦāļĢāļ·āļāļŦāļĨāļąāļāļāļąāļāļŠāļļāļāļāđāļēāļĒ) āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āđāļāļ·āđāļāļāļĢāļ§āļāļŠāļāļāļ§āđāļē
āđāļŦāļĨāļāļāļ°āļāļđāļāļĨāļāļāļāļāđāļāļĒāļāļēāļĢāđāļāļĨāļ āļāļēāļĢāļāļāļŠāļāļāđāļāđāļāļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāđ:
āļāļģāļŦāļāļ i8 @coerce_offset0 (i32 %V, i32* %P) {
āđāļāđāļ i32 %V, i32* %P
%P2 = āļāļīāļāļāļēāļŠāļāđ i32* %P āļāļķāļ i8*
%P3 = āļĢāļąāļāļāļāļāđāļāļĢāļ°āļāļāļ ptr i8* %P2, i32 2
%A = āđāļŦāļĨāļ i8* %P3
āļĒāļāđāļĨāļīāļ i8 %A
; āļāļĢāļ§āļāļŠāļāļ: @coerce_offset0
; āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ: āđāļŦāļĨāļ
; āļāļĢāļ§āļāļŠāļāļ: āļĒāļāđāļĨāļīāļ i8
}
āļāļ·āđāļāļāļĩāđ āļāļĢāļ§āļāļŠāļāļ-DAG: āļāļģāļŠāļąāđāļ
āļŦāļēāļāļāļģāđāļāđāļāļāđāļāļāļāļąāļāļāļđāđāļŠāļāļĢāļīāļāļāļĩāđāđāļĄāđāđāļĢāļĩāļĒāļāļĨāļģāļāļąāļāļāļĒāđāļēāļāđāļāđāļĄāļāļ§āļ
"āļāļĢāļ§āļāļŠāļāļ-DAG:" āļŠāļēāļĄāļēāļĢāļāđāļāđāļāļĢāļ§āļāļŠāļāļāđāļāđāļĢāļ°āļŦāļ§āđāļēāļāļŠāļāļāļāļąāļ (āļŦāļĢāļ·āļāļāđāļāļāļāļąāļāđāļĢāļ
āļŦāļĢāļ·āļāļŦāļĨāļąāļāļāļēāļĢāđāļāđāļāļāļąāļāļāļąāļāļāļĩāđāđāļĨāđāļ§) āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ clang āļāļĨāđāļāļĒ vtable globals āđāļāļĨāļģāļāļąāļāļāļĩāđāļāļĨāļąāļāļāļąāļ āđāļāļĒāđāļāđ
āļāļĢāļ§āļāļŠāļāļ-DAG:āđāļĢāļēāļŠāļēāļĄāļēāļĢāļāđāļāđāļāđāļāđāļāđāļ§āđāđāļāļĨāļģāļāļąāļāļāļĩāđāđāļāđāļāļāļĢāļĢāļĄāļāļēāļāļīāđāļāđ:
// āļ§āļīāđāļ: %clang_cc1 %s -emit-llvm -o - | āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ %s
struct Foo { āļ§āļīāļāļĩāļāļēāļĢāđāļĄāļāļ°āđāļŠāļĄāļ·āļāļ (); };
āļāļđāļ; // āļāļĨāđāļāļĒ vtable
// āđāļāđāļāđāļāđāļ: @_ZTV3Foo =
struct Bar { āļ§āļīāļāļĩāļāļēāļĢāđāļĄāļāļ°āđāļŠāļĄāļ·āļāļ (); };
āļāļēāļĢāđāļ;
// āđāļāđāļāđāļāđāļ: @_ZTV3Bar =
āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ: āļāļģāļŠāļąāđāļāļŠāļēāļĄāļēāļĢāļāļāļŠāļĄāļāļąāļ āļāļĢāļ§āļāļŠāļāļ-DAG: āļāļģāļŠāļąāđāļāļāļĩāđāļāļ°āđāļĒāļāļŠāļāļĢāļīāļāļĢāļ°āļŦāļ§āđāļēāļ
āđāļāļĒāļĢāļāļ āļāļĢāļ§āļāļŠāļāļ-DAG: āļāļģāļŠāļąāđāļ āļŠāđāļāļāļĨāđāļŦāđāļāļĢāļīāđāļ§āļāđāļāļĒāļĢāļāļ āļāļĢāļ§āļāļŠāļāļ-DAG: āļŠāļąāđāļ
āđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļąāļāļĨāļģāļāļąāļāđāļŦāļĄāđāđāļāđ āļāļĨāđāļēāļ§āļāļ·āļ āļāļĢāļāļāļąāļāļāļļāļāļĢāļēāļĒāļāļēāļĢ āļāļĢāļ§āļāļŠāļāļ-DAG: āļāđāļāļ āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ: āļāļ°āļāđāļāļāđāļĄāđ
āļāļĒāļđāđāđāļāļ·āđāļāļāļŦāļĨāļąāļāđāļŦāļāļļāļāļēāļĢāļāđāļāļĩāđāļāļĢāļāļāļąāļ āļāļĢāļ§āļāļŠāļāļ-DAG: āļŦāļĨāļąāļāļāļēāļ āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ:. āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ
; āļāļĢāļ§āļāļŠāļāļ-DAG: āļāđāļāļ
; āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ: āđāļĄāđ
; āļāļĢāļ§āļāļŠāļāļ-DAG: āļŦāļĨāļąāļāļāļēāļ
āļāļĢāļāļĩāļāļĩāđāļāļ°āļāļāļīāđāļŠāļāļŠāļāļĢāļīāļāļāļīāļāļāļļāļāđāļāļĒāļāļĩāđ āļāđāļāļ āđāļāļīāļāļāļķāđāļāļŦāļĨāļąāļāļāļēāļ āļŦāļĨāļąāļ.
āļāđāļ§āļĒāļāļąāļ§āđāļāļĢāļāļĩāđāļāļąāļāđāļāđ āļāļĢāļ§āļāļŠāļāļ-DAG: āļŠāļēāļĄāļēāļĢāļāļāļąāļāļāļđāđāļāļēāļĢāđāļĢāļĩāļĒāļāļĨāļģāļāļąāļāļāļāļāļāđāļĨāļĒāļĩāļāļĩāđāļāļđāļāļāđāļāļāļāļāļ DAG
āļĄāļĩāļāļāļāļāļąāđāļāđāļāđāļāļģāļāļģāļāļąāļāļāļ§āļēāļĄāļāļāļāļāļąāļ§āđāļāļĢāļāļāļāļķāļāļāļēāļĢāđāļāđāļāļēāļ āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđ āđāļāđāļ āđāļĄāļ·āđāļāļāļļāļ
āļāļĢāļāļĩāļāļāļŠāļāļāļāļģāđāļāđāļāļāđāļāļāļāļąāļāļāļđāđāļĨāļģāļāļąāļāđāļāļēāļāđāļāļļāļāļāļĩāđāđāļāļāļāđāļēāļāļāļēāļāļāļąāļ§āļāļģāļŦāļāļāļāļēāļĢāļēāļāđāļ§āļĨāļēāļāļģāļŠāļąāđāļ āļŠāļģāļŦāļĢāļąāļ
āļāļąāļ§āļāļĒāđāļēāļ,
; āļāļĢāļ§āļāļŠāļāļ-DAG: āđāļāļīāđāļĄ [[REG1:r[0-9]+]], r1, r2
; āļāļĢāļ§āļāļŠāļāļ-DAG: āđāļāļīāđāļĄ [[REG2:r[0-9]+]], r3, r4
; āļāļĢāļ§āļāļŠāļāļ: mul r5, [[REG1]], [[REG2]]
āđāļāļāļĢāļāļĩāļāļĩāđ āļĨāļģāļāļąāļāđāļāđ āļāļāļāļŠāļāļāļāļąāļ§āļāļąāđāļ āđāļāļīāđāļĄ āļāļģāđāļāļ°āļāļģāļāļ°āđāļāđāļĢāļąāļāļāļāļļāļāļēāļ
āļŦāļēāļāļāļļāļāļāļģāļĨāļąāļāļāļģāļŦāļāļ āđāļĨāļ° āđāļāļĒāđāļāđāļāļąāļ§āđāļāļĢāđāļāļāļąāļ§āđāļāļĩāļĒāļ§āļāļąāļ āļāļĢāļ§āļāļŠāļāļ-DAG: āļāļĨāđāļāļ āđāļāļĢāļāļāļĢāļēāļāļ§āđāļē
āļāļāļāļģāļāļģāļāļąāļāļāļ§āļēāļĄāļŠāļēāļĄāļēāļĢāļāļāļąāļāļāļđāđāđāļāđ āļŦāļĨāļąāļāļāļēāļ āļāļēāļĢāđāļāđāļāļēāļ
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ āļĢāļŦāļąāļŠāļāđāļēāļāļĨāđāļēāļāļāļ°āļāđāļēāļ:
; āļāļĢāļ§āļāļŠāļāļ-DAG: vmov.32 [[REG2:d[0-9]+]][0]
; āļāļĢāļ§āļāļŠāļāļ-DAG: vmov.32 [[REG2]][1]
vmov.32 d0 [1]
vmov.32 d0 [0]
āđāļāļāļāļ°āļāļĩāđāļĢāļŦāļąāļŠāļāļ·āđāļāļāļĩāđ āļāļ°āđāļĄāđ:
; āļāļĢāļ§āļāļŠāļāļ-DAG: vmov.32 [[REG2:d[0-9]+]][0]
; āļāļĢāļ§āļāļŠāļāļ-DAG: vmov.32 [[REG2]][1]
vmov.32 d1 [1]
vmov.32 d0 [0]
āđāļĄāđāļ§āđāļēāļŠāļīāđāļāļāļĩāđāļāļ°āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļĄāļēāļ āđāļāđāļāđāļāļąāļāļāļĢāļēāļĒāđāļāđāļāļāļąāļāđāļāļĢāļēāļ°āđāļāļāļĢāļāļĩāļāļāļāļāļēāļĢāļĨāļāļāļ°āđāļāļĩāļĒāļ
āļĨāļģāļāļąāļ āļāļļāļāļāđāļāļāļĄāļĩāļĨāļģāļāļąāļāļāļĩāđāļāļąāļāđāļāļ (āļāđāļēāļāļāđāļāļāđāļāļĩāļĒāļ āļāļąāļāļĨāļāļāļāđāļāļāđāļāđāļāļēāļ āļŊāļĨāļŊ) āļāđāļē
āļāļģāļāļģāļāļąāļāļāļ§āļēāļĄāļāļĩāđāļāļēāļĢāļāļāļŠāļāļāļāļāļāļāļļāļāļāļģāļĨāļąāļāļĄāļāļāļŦāļēāđāļĄāđāļāļĢāļāļāļąāļ (āđāļāļ·āđāļāļāļāļēāļāļāđāļāļāļāļāļĢāđāļāļāđāļāļāļāļĄāđāļāđāļĨāļāļĢāđ) āļĄāļąāļ
āļāļēāļāļāļąāļāļāļđāđāļŦāđāļēāļāļāļēāļāļāļēāļĢāđāļāđāļāļēāļāļĄāļēāļāļāļķāđāļāđāļĨāļ°āļāļīāļāļāļąāļāļāđāļāļāļāļāļĢāđāļāļāļāļĩāđāđāļāđāļāļĢāļīāļāļāļāļāđāļ
āđāļāļāļĢāļāļĩāļāļąāļāļāļĨāđāļēāļ§ āđāļāļāļēāļĢāļāļąāļāļāļąāļāđāļāđāļāļģāļŠāļąāđāļ āđāļŦāđāđāļāđāļāļģāļŠāļąāđāļ non-DAG āļĢāļ°āļŦāļ§āđāļēāļ DAG-block
āļāļ·āđāļāļāļĩāđ āļāļĢāļ§āļāļŠāļāļ-āļāđāļēāļĒāļāļģāļāļąāļ: āļāļģāļŠāļąāđāļ
āļāļēāļāļāļĢāļąāđāļāđāļāđāļāļĨāđāļāļĩāđāļĄāļĩāļāļēāļĢāļāļāļŠāļāļāļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢāđāļāđāļāļāļāļāđāļāđāļāļāļĨāđāļāļāļĨāļāļāļīāļāļąāļĨ āļāļĒāđāļēāļāļāđāļāļĒāļŦāļāļķāđāļāļāļĨāđāļāļ
āļāļĢāļ§āļāļŠāļāļ: āļāļģāļŠāļąāđāļāļāļēāļāļŠāļģāđāļĢāđāļāđāļāļĒāđāļĄāđāļāļąāđāļāđāļāđāļāļĒāļāļēāļĢāļāļąāļāļāļđāđāļāļĢāļĢāļāļąāļāđāļāļāļĨāđāļāļāļ āļēāļĒāļŦāļĨāļąāļ āđāļāļāļāļ°āļāļĩāđ an
āļāđāļāļāļīāļāļāļĨāļēāļāļĄāļąāļāļāļ°āļāļđāļāļŠāļĢāđāļēāļāļāļķāđāļāđāļāļāļĩāđāļŠāļļāļ āļāļēāļĢāļāļĢāļ§āļāļŠāļāļāļāļĩāđāļāļđāļāļāļąāđāļāļāđāļēāļŠāļāļēāļāļ°āđāļāđāļāļŠāļēāđāļŦāļāļļāļāļāļāļāđāļāļāļīāļāļāļĨāļēāļāļāļēāļāđāļĄāđ
āļāļĢāļīāļ āđ āđāļĨāđāļ§āļĄāļĩāļāļ§āļēāļĄāļŠāļąāļĄāļāļąāļāļāđāļāļąāļāđāļŦāļĨāđāļāļāļĩāđāļĄāļēāļāļĩāđāđāļāđāļāļĢāļīāļāļāļāļāļāļąāļāļŦāļē
āđāļāļ·āđāļāđāļŦāđāđāļāļīāļāļāđāļāļāļ§āļēāļĄāđāļŠāļāļāļāđāļāļāļīāļāļāļĨāļēāļāļāļĩāđāļāļĩāļāļķāđāļāđāļāļāļĢāļāļĩāđāļŦāļĨāđāļēāļāļĩāđ "āļāļĢāļ§āļāļŠāļāļ-āļāđāļēāļĒāļāļģāļāļąāļ:" āļāļģāļŠāļąāđāļāļŠāļēāļĄāļēāļĢāļ
āļāļđāļāļāļģāļĄāļēāđāļāđ āļĄāļąāļāđāļāđāļĢāļąāļāļāļēāļĢāļāļāļīāļāļąāļāļīāđāļŦāļĄāļ·āļāļāļāļąāļāļāļąāļāļāļāļāļī āļāļĢāļ§āļāļŠāļāļ āļāļģāļŠāļąāđāļāļĒāļāđāļ§āđāļāļ§āđāļē FileCheck āļāļģāđāļŦāđ
āļŠāļĄāļĄāļāļīāļāļēāļāđāļāļīāđāļĄāđāļāļīāļĄāļ§āđāļēāļāļĢāļĢāļāļąāļāļāļĩāđāļāļĢāļāļāļąāļāļāļģāļŠāļąāđāļāđāļĄāđāļŠāļēāļĄāļēāļĢāļāļāļąāļāļāļđāđāđāļāļĒ
āđāļāđāļāļāļ·āđāļ āđ āļāļĩāđāļĄāļĩāļāļĒāļđāđāđāļ āļāļ·āđāļāđāļāļĨāđāļāļĩāđāļāļĢāļāļāļąāļ; āļāļĩāđāļĄāļĩāđāļ§āđāļŠāļģāļŦāļĢāļąāļāđāļāđāļŠāļģāļŦāļĢāļąāļāđāļŠāđāļ
āļĄāļĩāļāđāļēāļĒāļāļģāļāļąāļāļŦāļĢāļ·āļāļāļąāļ§āļĢāļ°āļāļļāļāļĩāđāđāļĄāđāļāđāļģāļāļąāļāļāļ·āđāļāđ āļāļēāļĄāđāļāļ§āļāļīāļ āļāļēāļĢāļĄāļĩāļāļĒāļđāđāļāļāļ āļāļĢāļ§āļāļŠāļāļ-āļāļĨāļēāļ
āđāļāđāļāļāļĢāļ°āđāļŠāļāļīāļāļāļļāļāļāļāļāđāļāđāļāļāļĨāđāļāļāđāļĒāļāļāļąāļāļāļķāđāļāđāļāđāļĨāļ°āļāļąāļāđāļāđāļĢāļąāļāļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨāļāļĒāđāļēāļāļāļīāļŠāļĢāļ°
āļāđāļāļāļāļąāļ āļāļĢāļ§āļāļŠāļāļ: āļāļģāļŠāļąāđāļāđāļāļāļĨāđāļāļāļŦāļāļķāđāļāļāļĩāđāļāļĢāļāļāļąāļāļāļĢāļĢāļāļąāļāđāļāļāļĩāļāļāļĨāđāļāļāļŦāļāļķāđāļ āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ,
āļāļģāļŦāļāļ %struct.C* @C_ctor_base(%struct.C* % this, i32 %x) {
āļĢāļēāļĒāļāļēāļĢ:
; āļāļĢāļ§āļāļŠāļāļ-āļāđāļēāļĒāļāļģāļāļąāļ: C_ctor_base:
; āļāļĢāļ§āļāļŠāļāļ: mov [[āļāļąāļāļāļķāļ:r[0-9]+]], r0
; āļāļĢāļ§āļāļŠāļāļ: bl A_ctor_base
; āļāļĢāļ§āļāļŠāļāļ: mov r0, [[āļāļąāļāļāļķāļ]]
%0 = bitcast %struct.C* % āļāļĩāđāļāļķāļ %struct.A*
%call = āļāļēāļĢāđāļāļĢāļŦāļēāļ %struct.A* @A_ctor_base(%struct.A* %0)
%1 = bitcast %struct.C* %āļāļĩāđāļāļķāļ %struct.B*
%call2 = āļāļēāļĢāđāļāļĢāļŦāļēāļ %struct.B* @B_ctor_base(%struct.B* %1, i32 %x)
āļĒāļāđāļĨāļīāļ %struct.C* %āļāļĩāđ
}
āļāļģāļŦāļāļ %struct.D* @D_ctor_base(%struct.D* % this, i32 %x) {
āļĢāļēāļĒāļāļēāļĢ:
; āļāļĢāļ§āļāļŠāļāļ-āļāđāļēāļĒāļāļģāļāļąāļ: D_ctor_base:
āļāļēāļĢāđāļāđāļāļēāļāļāļāļ āļāļĢāļ§āļāļŠāļāļ-āļāđāļēāļĒāļāļģāļāļąāļ: āļāļģāļŠāļąāđāļāđāļāļāļĢāļāļĩāļāļĩāđāļāļģāđāļŦāđāļĄāļąāđāļāđāļāđāļāđāļ§āđāļēāļŠāļēāļĄ āļāļĢāļ§āļāļŠāļāļ: āļŠāļąāđāļ
āļĒāļāļĄāļĢāļąāļāđāļāļāļēāļ°āļāļĢāļĢāļāļąāļāļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļāđāļāļ·āđāļāļŦāļēāļāļāļ @C_ctor_base āļāļąāļāļāđāļāļąāļ āđāļĄāđāļ§āđāļē
āļĢāļđāļāđāļāļāļāļĢāļāļāļąāļāļāļĢāļĢāļāļąāļāļāļĩāđāļāļāđāļāđāļāļĨāđāđāļāļ āļēāļĒāļŦāļĨāļąāļ āļāļāļāļāļēāļāļāļĩāđ āļŦāļēāļāļŦāļāļķāđāļāđāļāļŠāļēāļĄāļāđāļāļāļĩāđ āļāļĢāļ§āļāļŠāļāļ:
āļāļģāļŠāļąāđāļāļĨāđāļĄāđāļŦāļĨāļ§ FileCheck āļāļ°āļāļđāđāļāļ·āļāđāļāļĒāļāļģāđāļāļīāļāļāļēāļĢāļāđāļāđāļāļĒāļąāļāļāļĨāđāļāļāļāļąāļāđāļ āļāļāļļāļāļēāļāļŦāļĨāļēāļĒāļĢāļēāļĒāļāļēāļĢ
āļāļĢāļ§āļāļāļāļāļ§āļēāļĄāļĨāđāļĄāđāļŦāļĨāļ§āđāļāļāļēāļĢāļāļāļŠāļāļāđāļāļāļēāļĢāđāļĢāļĩāļĒāļāđāļāđāļāļĢāļąāđāļāđāļāļĩāļĒāļ§
āđāļĄāđāļĄāļĩāļāđāļāļāļģāļŦāļāļāļ§āđāļē āļāļĢāļ§āļāļŠāļāļ-āļāđāļēāļĒāļāļģāļāļąāļ: āļāļģāļŠāļąāđāļāļĄāļĩāļŠāļāļĢāļīāļāļāļĩāđāļŠāļāļāļāļĨāđāļāļāļāļąāļ
āļāđāļēāļĒāļāļģāļāļąāļāļ§āļēāļāļĒāļŠāļąāļĄāļāļąāļāļāđāļāļĩāđāđāļāđāļāļĢāļīāļāđāļāļ āļēāļĐāļēāļāđāļāļāļēāļāļŦāļĢāļ·āļāļ āļēāļĐāļēāļāļĩāđāļŠāđāļāļāļāļ: āļāđāļāļāļāļąāļāļāļđāđāđāļāļāļēāļ° a . āđāļāđāļēāļāļąāđāļ
āļāļĢāļĢāļāļąāļāđāļāļĩāļĒāļ§āđāļāđāļāļĨāđāļāļĩāđāļāļģāļĨāļąāļāļāļĢāļ§āļāļŠāļāļ
āļāļĢāļ§āļāļŠāļāļ-āļāđāļēāļĒāļāļģāļāļąāļ: āļāļģāļŠāļąāđāļāļāđāļāļāđāļĄāđāļĄāļĩāļāļģāļāļģāļāļąāļāļāļ§āļēāļĄāļŦāļĢāļ·āļāļāļēāļĢāđāļāđāļāļąāļ§āđāļāļĢ
āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āđāļāļāđāļāļ āđāļĄāđāļāļāļīāđāļ āļ§āļēāļāļĒāļŠāļąāļĄāļāļąāļāļāđ
"āļāļēāļĢāļāļĢāļ§āļāļŠāļāļ:"āđāļĨāļ°"āļāļĢāļ§āļāļŠāļāļ-āđāļĄāđ:" āļāļģāļŠāļąāđāļāļāļąāđāļāļŠāļāļāđāļāđāļĢāļđāļāđāļāļāđāļāļ·āđāļāđāļŦāđāļāļĢāļāļāļąāļ āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāđāļāđāļāļēāļāļŠāđāļ§āļāđāļŦāļāđ
FileCheck āļāļēāļĢāļāļąāļāļāļđāđāļŠāļāļĢāļīāļāļāļāļāļĩāđāļāđāđāļāļĩāļĒāļāļāļāđāļĨāđāļ§ āļŠāļģāļŦāļĢāļąāļāļāļēāļāļŠāļīāđāļ āđāļāļīāđāļĄāđāļāļīāļĄ
āļāđāļāļāļāļēāļĢāļĢāļđāļāđāļāļāļāļēāļĢāļāļąāļāļāļđāđāļāļĩāđāļĒāļ·āļāļŦāļĒāļļāđāļ āđāļāļ·āđāļāļĢāļāļāļĢāļąāļāļŠāļīāđāļāļāļĩāđ FileCheck āđāļŦāđāļāļļāļāļĢāļ°āļāļļ
āļāļīāļāļāļāđāļāļąāđāļ§āđāļāđāļāļŠāļāļĢāļīāļāļāļĩāđāļāļĢāļāļāļąāļ āļĨāđāļāļĄāļĢāļāļāļāđāļ§āļĒāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļĩāļāļāļēāļāļđāđ: {{yourregex}}.
āđāļāļ·āđāļāļāļāļēāļāđāļĢāļēāļāđāļāļāļāļēāļĢāđāļāđāļāļēāļĢāļāļąāļāļāļđāđāļŠāļāļĢāļīāļāđāļāļāļāļāļāļĩāđāļāļąāļāļŠāļīāđāļāļāļĩāđāđāļĢāļēāļāļģāđāļāđāļāļŠāđāļ§āļāđāļŦāļāđ FileCheck āļāļķāļāļĄāļĩ
āđāļāđāļĢāļąāļāļāļēāļĢāļāļāļāđāļāļāļĄāļēāđāļāļ·āđāļāļĢāļāļāļĢāļąāļāļāļēāļĢāļāļŠāļĄāđāļĨāļ°āļāļąāļāļāļđāđāļŠāļāļĢāļīāļāļāļāļāļĩāđāļāļĩāđāļāļąāļāļāļđāđāļāļąāļāļāļāļāļī
āļāļīāļāļāļāđ āļŠāļīāđāļāļāļĩāđāļāļģāđāļŦāđāļāļļāļāļŠāļēāļĄāļēāļĢāļāđāļāļĩāļĒāļāļŠāļīāđāļāļāđāļēāļ āđ āđāļāđāļāļāļĩāđ:
; āļāļĢāļ§āļāļŠāļāļ: movhpd {{[0-9]+}}(%esp), {{%xmm[0-7]}}
āđāļāļāļĢāļāļĩāļāļĩāđ āļāļāļāđāļāđāļāđāļāđ āļāļēāļāļāļēāļĢāļĨāļāļāļ°āđāļāļĩāļĒāļ ESP āļāļ°āđāļāđāļĢāļąāļāļāļāļļāļāļēāļ āđāļĨāļ°āļāļēāļĢāļĨāļāļāļ°āđāļāļĩāļĒāļ xmm āđāļāđ āļāļ°
āđāļāđāļĢāļąāļāļāļāļļāļāļēāļ
āđāļāļ·āđāļāļāļāļēāļāļāļīāļāļāļāđāļāļąāđāļ§āđāļāļāļīāļāļĨāđāļāļĄāļāđāļ§āļĒāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļĩāļāļāļē XNUMX āļāļąāđāļ āļāļķāļāļĄāļāļāđāļŦāđāļāđāļāđāļāļąāļāđāļāļ
āđāļĨāļ°āļāļļāļāđāļĄāđāļāļģāđāļāđāļāļāđāļāļāđāļāđāļāļąāļāļāļĢāļ°āļŦāļĨāļĩāļāļ āļēāļĒāđāļāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļĩāļāļāļēāļāļđāđāđāļŦāļĄāļ·āļāļāđāļ C
āđāļāļāļĢāļāļĩāļāļĩāđāļŦāļēāļĒāļēāļāļāļĩāđāļāļļāļāļāđāļāļāļāļēāļĢāļāļąāļāļāļđāđāđāļāļĢāļ·āđāļāļāļŦāļĄāļēāļĒāļāļĩāļāļāļēāļāļđāđāļāļĒāđāļēāļāļāļąāļāđāļāļāļāļēāļāļāļīāļāļāļļāļ āļāļļāļāļŠāļēāļĄāļēāļĢāļ
āđāļāđāļŠāļīāđāļāļāļĩāđāļāđāļēāđāļāļĨāļĩāļĒāļāđāļāđāļ {{[{][{]}} āļāļēāļĄāđāļāļāļāļāļąāļāļāļāļāļāļļāļ
āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāļąāļ§āđāļāļĢ
āļĄāļąāļāļāļ°āđāļāđāļāļāļĢāļ°āđāļĒāļāļāđāđāļāļāļēāļĢāļāļąāļāļāļđāđāļĢāļđāļāđāļāļāđāļĨāļ°āļāļĢāļ§āļāļŠāļāļāļ§āđāļēāđāļāļīāļāļāļķāđāļāļāļĩāļāļāļĢāļąāđāļāđāļāļ āļēāļĒāļŦāļĨāļąāļāđāļ
āđāļāļĨāđ. āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļāļŠāļāļ codegen āļŠāļīāđāļāļāļĩāđāļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāđāļāļāļēāļĢāļāļāļļāļāļēāļāļāļēāļĢāļĨāļāļāļ°āđāļāļĩāļĒāļāđāļāđ āđāļāđāđāļŦāđāļāļĢāļ§āļāļŠāļāļāļ§āđāļē
register āļāļđāļāđāļāđāļāļĒāđāļēāļāļŠāļĄāđāļģāđāļŠāļĄāļāđāļāļ āļēāļĒāļŦāļĨāļąāļ āđāļāļ·āđāļāļāļģāļŠāļīāđāļāļāļĩāđ, āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāļāļļāļāļēāļāđāļŦāđāļāļąāļ§āđāļāļĢāļāļĩāđāļĄāļĩāļāļ·āđāļāđāļāđāļ
āļāļģāļŦāļāļāđāļĨāļ°āđāļāļāļāļĩāđāđāļāđāļāļĢāļđāļāđāļāļ āļāļĩāđāđāļāđāļāļāļąāļ§āļāļĒāđāļēāļāļāđāļēāļĒāđ:
; āļāļĢāļ§āļāļŠāļāļ: test5:
; āļāļĢāļ§āļāļŠāļāļ: āđāļĄāđ [[āļĨāļāļāļ°āđāļāļĩāļĒāļ:%[az]+]]
; āļāļĢāļ§āļāļŠāļāļ: āđāļĨāļ°w {{.*}}[[āļĨāļāļāļ°āđāļāļĩāļĒāļ]]
āđāļāđāļāļāļĢāļĢāļāļąāļāđāļĢāļāļāļĢāļāļāļąāļ regex %[az]+ āđāļĨāđāļ§āļāļąāļāđāļāđāļēāļāļąāļ§āđāļāļĢ āļĨāļāļāļ°āđāļāļĩāļĒāļ.
āļāļĢāļĢāļāļąāļāļāļĩāđāļŠāļāļāļāļĢāļ§āļāļŠāļāļāļ§āđāļēāļŠāļīāđāļāļāļĩāđāļāļĒāļđāđāđāļ āļĨāļāļāļ°āđāļāļĩāļĒāļ āđāļāļīāļāļāļķāđāļāļ āļēāļĒāļŦāļĨāļąāļāđāļāđāļāļĨāđāļŦāļĨāļąāļāļāļēāļ an
"āđāļĨāļ°". āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāļēāļĢāļāđāļēāļāļāļīāļāļāļąāļ§āđāļāļĢāļĄāļąāļāļāļ°āļĄāļĩāļāļĒāļđāđāđāļ [[ ]] āļāļđāđāđāļĨāļ°āļāļāļāļāļ§āļāđāļāļē
āļŠāļēāļĄāļēāļĢāļāļŠāļĢāđāļēāļāļāļ·āđāļāđāļāđāļāđāļ§āļĒ regex [a-zA-Z][a-zA-Z0-9]*. āļāđāļēāđāļāļĨāļāļāļāļēāļĄāļāļ·āđāļ
āļāļķāļāđāļāđāļāļāļīāļĒāļēāļĄāļāļāļāļāļąāļ§āđāļāļĢ āļĄāļīāļāļ°āļāļąāđāļāļāļ°āđāļāđāļāļāļēāļĢāđāļāđāļāļēāļ
āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāļąāļ§āđāļāļĢāļŠāļēāļĄāļēāļĢāļāļāļģāļŦāļāļāđāļāđāļŦāļĨāļēāļĒāļāļĢāļąāđāļ āđāļĨāļ°āđāļāđāļāđāļēāļĨāđāļēāļŠāļļāļāđāļŠāļĄāļ
āļāļąāļ§āđāļāļĢāļĒāļąāļāļŠāļēāļĄāļēāļĢāļāđāļāđāļ āļēāļĒāļŦāļĨāļąāļāđāļāļāļĢāļĢāļāļąāļāđāļāļĩāļĒāļ§āļāļąāļāļāļąāļāļāļĩāđāļāļģāļŦāļāļāđāļ§āđ āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļ:
; āļāļĢāļ§āļāļŠāļāļ: op [[REG:r[0-9]+]], [[REG]]
āļāļ°āļĄāļĩāļāļĢāļ°āđāļĒāļāļāđāļāđāļēāļāļļāļāļāđāļāļāļāļēāļĢāļāļąāļ§āļāļđāļāļāļģāđāļāļīāļāļāļēāļĢāļāļāļ op āđāļŦāđāđāļāđāļāļāļ°āđāļāļĩāļĒāļāđāļāļīāļĄāđāļĄāđāļŠāļ
āļāļĩāđāļĨāļāļāļ°āđāļāļĩāļĒāļāļĄāļąāļāđāļāđāļ
āļāļĢāļ§āļāļŠāļāļāđāļāļĨāđ āļāļēāļĢāđāļŠāļāļāļāļāļ
āļāļēāļāļāļĢāļąāđāļāļĄāļĩāļāļ§āļēāļĄāļāļģāđāļāđāļāļāđāļāļāļāļĢāļ§āļāļŠāļāļāļāļĨāļĨāļąāļāļāđāļāļķāđāļāļāđāļēāļāļāļīāļāļŦāļĄāļēāļĒāđāļĨāļāļāļĢāļĢāļāļąāļāļāļāļāđāļāļĨāđāļāļĩāđāļāļĢāļāļāļąāļ
āđāļāđāļ āđāļĄāļ·āđāļāļāļģāļāļēāļĢāļāļāļŠāļāļāļāļēāļĢāļ§āļīāļāļīāļāļāļąāļĒāļāļāļĄāđāļāđāļĨāļāļĢāđ āļŠāļīāđāļāļāļĩāđāļāļģāđāļŦāđāđāļāļīāļāļāļ§āļēāļĄāđāļāļĢāļēāļ°āļāļēāļāļāļāļāļāļēāļĢāđāļāđāļāļāļąāļ
āđāļāļĢāļāļŠāļĢāđāļēāļāđāļāļĨāđāđāļāđāļ "āļāļĢāļ§āļāļŠāļāļ:" āļāļĢāļĢāļāļąāļāļĄāļĩāļŦāļĄāļēāļĒāđāļĨāļāļāļĢāļĢāļāļąāļāļāļĩāđāđāļāđāļāļāļāđāļāđāļāļĨāđāđāļāļĩāļĒāļ§āļāļąāļāļāļķāđāļ
āļāđāļāļāļāļąāļāđāļāļāļāļļāļāļāļĢāļąāđāļāļāļĩāđāđāļāļĨāļĩāđāļĒāļāļŦāļĄāļēāļĒāđāļĨāļāļāļĢāļĢāļāļąāļāđāļāļ·āđāļāļāļāļēāļāļāļēāļĢāđāļāļīāļĄāļŦāļĢāļ·āļāļĨāļāļāđāļāļāļ§āļēāļĄ
āđāļāļ·āđāļāļĢāļāļāļĢāļąāļāļāļĢāļāļĩāļāļĩāđ FileCheck āļāļāļļāļāļēāļāđāļŦāđāđāļāđ [[@āđāļĨāļāđ]], [[@LINE+ ]],
[[@āđāļĨāļāđ- ]] āļāļēāļĢāđāļŠāļāļāļāļāļāđāļāļĢāļđāļāđāļāļ āļāļīāļāļāļāđāđāļŦāļĨāđāļēāļāļĩāđāļāļĒāļēāļĒāđāļāđāļāļāļģāļāļ§āļ
āđāļŠāđāļāļāļĩāđāļĄāļĩāļĢāļđāļāđāļāļāļāļĒāļđāđ (āļāļĢāđāļāļĄāļāļāļāđāļāđāļāļāļģāļāļ§āļāđāļāđāļĄāđāļŠāļĢāļīāļĄ)
āļ§āļīāļāļĩāļāļĩāđāļŠāļēāļĄāļēāļĢāļāđāļŠāđāļĢāļđāļāđāļāļāļāļēāļĢāļāļąāļāļāļđāđāđāļ§āđāđāļāļĨāđāļāļąāļāđāļŠāđāļāļāļāļŠāļāļāļāļĩāđāđāļāļĩāđāļĒāļ§āļāđāļāļāđāļĨāļ°āļĢāļ§āļĄāđāļŠāđāļāļāļĩāđāļŠāļąāļĄāļāļąāļāļāđāļāļąāļ
āļāļēāļĢāļāđāļēāļāļāļīāļāļāļąāļ§āđāļĨāļ āđāļāđāļ
// āļāļĢāļ§āļāļŠāļāļ: test.cpp:[[@LINE+4]]:6: āļāđāļāļāļīāļāļāļĨāļēāļ: āļāļēāļāļŦāļ§āļąāļ ';' āļŦāļĨāļąāļāļāļđāđāļāļĢāļ°āļāļēāļĻāļĢāļ°āļāļąāļāļāļāļŠāļļāļ
// āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: {{^int a}}
// āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: {{^ \^}}
// āļāļĢāļ§āļāļŠāļāļ-āļāļąāļāđāļ: {{^ ;}}
int āļ
āđāļāđ FileCheck-3.6 āļāļāļāđāļĨāļāđāđāļāļĒāđāļāđāļāļĢāļīāļāļēāļĢ onworks.net