brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · 0c8d7fc Raw
173 lines · plain
1; RUN: llc < %s -mtriple="x86_64-pc-linux-gnu" | FileCheck %s2 3declare void @callee()4 5define void @f_0(<1024 x i64> %val) {6; CHECK:      .quad	28824000157; CHECK-NEXT: .long	.Ltmp0-f_08; CHECK-NEXT: .short	09; CHECK-NEXT: .short	410; Constant(0)11; CHECK-NEXT: .byte	412; CHECK-NEXT: .byte	0 13; CHECK-NEXT: .short	814; CHECK-NEXT: .short	015; CHECK-NEXT: .short	016; CHECK-NEXT: .long	017; Constant(0)18; CHECK-NEXT: .byte	419; CHECK-NEXT: .byte	020; CHECK-NEXT: .short	821; CHECK-NEXT: .short	022; CHECK-NEXT: .short	023; CHECK-NEXT: .long	024; Constant(1)25; CHECK-NEXT: .byte	426; CHECK-NEXT: .byte	027; CHECK-NEXT: .short	828; CHECK-NEXT: .short	029; CHECK-NEXT: .short	030; CHECK-NEXT: .long	131; Indirect32; CHECK-NEXT: .byte	333; CHECK-NEXT: .byte	034; CHECK-NEXT: .short	819235; CHECK-NEXT: .short	736; CHECK-NEXT: .short	037; CHECK-NEXT: .long	038; Padding39; CHECK-NEXT: .p2align	340  call void @callee() [ "deopt"(<1024 x i64> %val) ]41  ret void42}43 44define void @f_1(<1024 x ptr> %val) {45; CHECK:      .quad	288240001546; CHECK-NEXT: .long	.Ltmp1-f_147; CHECK-NEXT: .short	048; CHECK-NEXT: .short	449; Constant(0)50; CHECK-NEXT: .byte	451; CHECK-NEXT: .byte	052; CHECK-NEXT: .short	853; CHECK-NEXT: .short	054; CHECK-NEXT: .short	055; CHECK-NEXT: .long	056; Constant(0)57; CHECK-NEXT: .byte	458; CHECK-NEXT: .byte	059; CHECK-NEXT: .short	860; CHECK-NEXT: .short	061; CHECK-NEXT: .short	062; CHECK-NEXT: .long	063; Constant(1)64; CHECK-NEXT: .byte	465; CHECK-NEXT: .byte	066; CHECK-NEXT: .short	867; CHECK-NEXT: .short	068; CHECK-NEXT: .short	069; CHECK-NEXT: .long	170; Indirect71; CHECK-NEXT: .byte	372; CHECK-NEXT: .byte	073; CHECK-NEXT: .short	819274; CHECK-NEXT: .short	775; CHECK-NEXT: .short	076; CHECK-NEXT: .long	077; Padding78; CHECK-NEXT: .p2align	379  call void @callee() [ "deopt"(<1024 x ptr> %val) ]80  ret void81}82 83define void @f_2(<99 x ptr> %val) {84; CHECK:      .quad	288240001585; CHECK-NEXT: .long	.Ltmp2-f_286; CHECK-NEXT: .short	087; CHECK-NEXT: .short	488; Constant(0)89; CHECK-NEXT: .byte	490; CHECK-NEXT: .byte	091; CHECK-NEXT: .short	892; CHECK-NEXT: .short	093; CHECK-NEXT: .short	094; CHECK-NEXT: .long	095; Constant(0)96; CHECK-NEXT: .byte	497; CHECK-NEXT: .byte	098; CHECK-NEXT: .short	899; CHECK-NEXT: .short	0100; CHECK-NEXT: .short	0101; CHECK-NEXT: .long	0102; Constant(1)103; CHECK-NEXT: .byte	4104; CHECK-NEXT: .byte	0105; CHECK-NEXT: .short	8106; CHECK-NEXT: .short	0107; CHECK-NEXT: .short	0108; CHECK-NEXT: .long	1109; Indirect110; CHECK-NEXT: .byte	3111; CHECK-NEXT: .byte	0112; CHECK-NEXT: .short	792113; CHECK-NEXT: .short	7114; CHECK-NEXT: .short	0115; CHECK-NEXT: .long	0116; CHECK-NEXT: .p2align	3117  call void @callee() [ "deopt"(<99 x ptr> %val) ]118  ret void119}120 121 122define <400 x ptr addrspace(1)> @f_3(<400 x ptr addrspace(1)> %obj) gc "statepoint-example" {123; CHECK:      .quad	4242124; CHECK-NEXT: .long	.Ltmp3-f_3125; CHECK-NEXT: .short	0126; CHECK-NEXT: .short	5127; Constant(0)128; CHECK-NEXT: .byte	4129; CHECK-NEXT: .byte	0130; CHECK-NEXT: .short	8131; CHECK-NEXT: .short	0132; CHECK-NEXT: .short	0133; CHECK-NEXT: .long	0134; Constant(0)135; CHECK-NEXT: .byte	4136; CHECK-NEXT: .byte	0137; CHECK-NEXT: .short	8138; CHECK-NEXT: .short	0139; CHECK-NEXT: .short	0140; CHECK-NEXT: .long	0141; Constant(0)142; CHECK-NEXT: .byte	4143; CHECK-NEXT: .byte	0144; CHECK-NEXT: .short	8145; CHECK-NEXT: .short	0146; CHECK-NEXT: .short	0147; CHECK-NEXT: .long	0148; Indirect149; CHECK-NEXT: .byte	3150; CHECK-NEXT: .byte	0151; CHECK-NEXT: .short	3200152; CHECK-NEXT: .short	7153; CHECK-NEXT: .short	0154; CHECK-NEXT: .long	0155; Indirect156; CHECK-NEXT: .byte	3157; CHECK-NEXT: .byte	0158; CHECK-NEXT: .short	3200159; CHECK-NEXT: .short	7160; CHECK-NEXT: .short	0161; CHECK-NEXT: .long	0162; Padding163; CHECK-NEXT: .p2align	3164  %tok = call token (i64, i32, ptr, i32, i32, ...) @llvm.experimental.gc.statepoint.p0(i64 4242, i32 0, ptr elementtype(void ()) @do_safepoint, i32 0, i32 0, i32 0, i32 0) ["gc-live"(<400 x ptr addrspace(1)> %obj)]165  %obj.r = call coldcc <400 x ptr addrspace(1)> @llvm.experimental.gc.relocate.v400p1(token %tok, i32 0, i32 0)166  ret <400 x ptr addrspace(1)> %obj.r167}168 169declare void @do_safepoint()170 171declare token @llvm.experimental.gc.statepoint.p0(i64, i32, ptr, i32, i32, ...)172declare <400 x ptr addrspace(1)> @llvm.experimental.gc.relocate.v400p1(token, i32, i32)173