67 lines · plain
1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | FileCheck %s2; RUN: %if ptxas-sm_80 && ptxas-isa-7.0 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_80 -mattr=+ptx70 | %ptxas-verify -arch=sm_80 %}3 4declare i32 @llvm.nvvm.redux.sync.umin(i32, i32)5; CHECK-LABEL: .func{{.*}}redux_sync_min_u326define i32 @redux_sync_min_u32(i32 %src, i32 %mask) {7 ; CHECK: redux.sync.min.u328 %val = call i32 @llvm.nvvm.redux.sync.umin(i32 %src, i32 %mask)9 ret i32 %val10}11 12declare i32 @llvm.nvvm.redux.sync.umax(i32, i32)13; CHECK-LABEL: .func{{.*}}redux_sync_max_u3214define i32 @redux_sync_max_u32(i32 %src, i32 %mask) {15 ; CHECK: redux.sync.max.u3216 %val = call i32 @llvm.nvvm.redux.sync.umax(i32 %src, i32 %mask)17 ret i32 %val18}19 20declare i32 @llvm.nvvm.redux.sync.add(i32, i32)21; CHECK-LABEL: .func{{.*}}redux_sync_add_s3222define i32 @redux_sync_add_s32(i32 %src, i32 %mask) {23 ; CHECK: redux.sync.add.s3224 %val = call i32 @llvm.nvvm.redux.sync.add(i32 %src, i32 %mask)25 ret i32 %val26}27 28declare i32 @llvm.nvvm.redux.sync.min(i32, i32)29; CHECK-LABEL: .func{{.*}}redux_sync_min_s3230define i32 @redux_sync_min_s32(i32 %src, i32 %mask) {31 ; CHECK: redux.sync.min.s3232 %val = call i32 @llvm.nvvm.redux.sync.min(i32 %src, i32 %mask)33 ret i32 %val34}35 36declare i32 @llvm.nvvm.redux.sync.max(i32, i32)37; CHECK-LABEL: .func{{.*}}redux_sync_max_s3238define i32 @redux_sync_max_s32(i32 %src, i32 %mask) {39 ; CHECK: redux.sync.max.s3240 %val = call i32 @llvm.nvvm.redux.sync.max(i32 %src, i32 %mask)41 ret i32 %val42}43 44declare i32 @llvm.nvvm.redux.sync.and(i32, i32)45; CHECK-LABEL: .func{{.*}}redux_sync_and_b3246define i32 @redux_sync_and_b32(i32 %src, i32 %mask) {47 ; CHECK: redux.sync.and.b3248 %val = call i32 @llvm.nvvm.redux.sync.and(i32 %src, i32 %mask)49 ret i32 %val50}51 52declare i32 @llvm.nvvm.redux.sync.xor(i32, i32)53; CHECK-LABEL: .func{{.*}}redux_sync_xor_b3254define i32 @redux_sync_xor_b32(i32 %src, i32 %mask) {55 ; CHECK: redux.sync.xor.b3256 %val = call i32 @llvm.nvvm.redux.sync.xor(i32 %src, i32 %mask)57 ret i32 %val58}59 60declare i32 @llvm.nvvm.redux.sync.or(i32, i32)61; CHECK-LABEL: .func{{.*}}redux_sync_or_b3262define i32 @redux_sync_or_b32(i32 %src, i32 %mask) {63 ; CHECK: redux.sync.or.b3264 %val = call i32 @llvm.nvvm.redux.sync.or(i32 %src, i32 %mask)65 ret i32 %val66}67