brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · eff2b37 Raw
36 lines · plain
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 62// RUN: %clang_cc1 -triple nvptx64-nvidia-cuda -fcuda-is-device -fgpu-rdc -emit-llvm %s -o - | FileCheck %s3 4#include "Inputs/cuda.h"5 6// CHECK-LABEL: define dso_local ptx_kernel void @_Z2g2i(7// CHECK-SAME: i32 noundef [[X:%.*]]) #[[ATTR0:[0-9]+]] {8// CHECK-NEXT:  [[ENTRY:.*:]]9// CHECK-NEXT:    [[X_ADDR:%.*]] = alloca i32, align 410// CHECK-NEXT:    store i32 [[X]], ptr [[X_ADDR]], align 411// CHECK-NEXT:    ret void12//13__global__ void g2(int x) {}14 15// CHECK-LABEL: define dso_local ptx_kernel void @_Z2g1v(16// CHECK-SAME: ) #[[ATTR0]] {17// CHECK-NEXT:  [[ENTRY:.*:]]18// CHECK-NEXT:    [[AGG_TMP:%.*]] = alloca [[STRUCT_DIM3:%.*]], align 419// CHECK-NEXT:    [[AGG_TMP1:%.*]] = alloca [[STRUCT_DIM3]], align 420// CHECK-NEXT:    [[CALL:%.*]] = call ptr @cudaGetParameterBuffer(i64 noundef 64, i64 noundef 4) #[[ATTR3:[0-9]+]]21// CHECK-NEXT:    [[TMP0:%.*]] = icmp ne ptr [[CALL]], null22// CHECK-NEXT:    br i1 [[TMP0]], label %[[DKCALL_CONFIGOK:.*]], label %[[DKCALL_END:.*]]23// CHECK:       [[DKCALL_CONFIGOK]]:24// CHECK-NEXT:    [[TMP1:%.*]] = getelementptr inbounds i8, ptr [[CALL]], i64 025// CHECK-NEXT:    store i32 42, ptr [[TMP1]], align 6426// CHECK-NEXT:    call void @_ZN4dim3C1Ejjj(ptr noundef nonnull align 4 dereferenceable(12) [[AGG_TMP]], i32 noundef 1, i32 noundef 1, i32 noundef 1) #[[ATTR3]]27// CHECK-NEXT:    call void @_ZN4dim3C1Ejjj(ptr noundef nonnull align 4 dereferenceable(12) [[AGG_TMP1]], i32 noundef 1, i32 noundef 1, i32 noundef 1) #[[ATTR3]]28// CHECK-NEXT:    [[CALL2:%.*]] = call i32 @cudaLaunchDevice(ptr noundef @_Z2g2i, ptr noundef [[CALL]], ptr noundef byval([[STRUCT_DIM3]]) align 4 [[AGG_TMP]], ptr noundef byval([[STRUCT_DIM3]]) align 4 [[AGG_TMP1]], i32 noundef 0, ptr noundef null) #[[ATTR3]]29// CHECK-NEXT:    br label %[[DKCALL_END]]30// CHECK:       [[DKCALL_END]]:31// CHECK-NEXT:    ret void32//33__global__ void g1(void) {34  g2<<<1, 1>>>(42);35}36