1; RUN: opt -S -mtriple=amdgcn-amd-amdhsa -O1 < %s | FileCheck -check-prefix=OPT %s 2; RUN: llc -mtriple=amdgcn-amd-amdhsa -mcpu=gfx1010 -verify-machineinstrs < %s | FileCheck -check-prefix=LLC %s 3 4; OPT: declare void @foo4() local_unnamed_addr #0 5; OPT: define void @foo3() local_unnamed_addr #1 6; OPT: define void @foo2() local_unnamed_addr #1 7; OPT: define void @foo1() local_unnamed_addr #1 8; OPT: define amdgpu_kernel void @kernel1() local_unnamed_addr #2 9; OPT: define amdgpu_kernel void @kernel2() local_unnamed_addr #2 10; OPT: attributes #0 = { {{.*}} "target-features"="+wavefrontsize64" } 11; OPT: attributes #1 = { {{.*}} "target-features"="{{.*}},-wavefrontsize16,+wavefrontsize32,-wavefrontsize64 12; OPT: attributes #2 = { {{.*}} "target-features"="+wavefrontsize32 13; OPT: attributes #3 = { nounwind } 14 15; LLC: foo3: 16; LLC: sample asm 17; LLC: foo2: 18; LLC: sample asm 19; LLC: foo1: 20; LLC: foo4@gotpcrel32@lo+4 21; LLC: foo4@gotpcrel32@hi+12 22; LLC: foo3@gotpcrel32@lo+4 23; LLC: foo3@gotpcrel32@hi+12 24; LLC: foo2@gotpcrel32@lo+4 25; LLC: foo2@gotpcrel32@hi+12 26; LLC: foo1@gotpcrel32@lo+4 27; LLC: foo1@gotpcrel32@hi+12 28; LLC: kernel1: 29; LLC: foo1@gotpcrel32@lo+4 30; LLC: foo1@gotpcrel32@hi+12 31; LLC: kernel2: 32; LLC: foo2@gotpcrel32@lo+4 33; LLC: foo2@gotpcrel32@hi+12 34 35declare void @foo4() #1 36 37define void @foo3() #1 { 38entry: 39 call void asm sideeffect "; sample asm", ""() 40 ret void 41} 42 43define void @foo2() #1 { 44entry: 45 call void asm sideeffect "; sample asm", ""() 46 ret void 47} 48 49define void @foo1() #1 { 50entry: 51 tail call void @foo4() 52 tail call void @foo3() 53 tail call void @foo2() 54 tail call void @foo2() 55 tail call void @foo1() 56 ret void 57} 58 59define amdgpu_kernel void @kernel1() #0 { 60entry: 61 tail call void @foo1() 62 ret void 63} 64 65define amdgpu_kernel void @kernel2() #0 { 66entry: 67 tail call void @foo2() 68 ret void 69} 70 71attributes #0 = { nounwind "target-features"="+wavefrontsize32" } 72attributes #1 = { noinline nounwind "target-features"="+wavefrontsize64" } 73