32 lines · plain
1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_20 -verify-machineinstrs | FileCheck %s2; RUN: %if ptxas %{ llc < %s -mtriple=nvptx64 -mcpu=sm_20 -verify-machineinstrs | %ptxas-verify %}3 4target triple = "nvptx-unknown-cuda"5 6declare void @bar(<4 x i32>)7 8; CHECK-LABEL: .func foo(9; CHECK-DAG: ld.param.v4.b32 {[[E0:%r[0-9]+]], [[E1:%r[0-9]+]], [[E2:%r[0-9]+]], [[E3:%r[0-9]+]]}, [foo_param_0];10; CHECK: .param .align 16 .b8 param0[16];11; CHECK-DAG: st.param.v4.b32 [param0], {[[E0]], [[E1]], [[E2]], [[E3]]};12; CHECK: call.uni13; CHECK: ret;14define void @foo(<4 x i32> %a) {15 tail call void @bar(<4 x i32> %a)16 ret void17}18 19; CHECK-LABEL: .func foo3(20; CHECK-DAG: ld.param.v2.b32 {[[E0:%r[0-9]+]], [[E1:%r[0-9]+]]}, [foo3_param_0];21; CHECK-DAG: ld.param.b32 [[E2:%r[0-9]+]], [foo3_param_0+8];22; CHECK: .param .align 16 .b8 param0[16];23; CHECK-DAG: st.param.v2.b32 [param0], {[[E0]], [[E1]]};24; CHECK-DAG: st.param.b32 [param0+8], [[E2]];25; CHECK: call.uni26; CHECK: ret;27declare void @bar3(<3 x i32>)28define void @foo3(<3 x i32> %a) {29 tail call void @bar3(<3 x i32> %a)30 ret void31}32