87 lines · plain
1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_89 -mattr=+ptx81 | FileCheck %s2; RUN: %if ptxas-sm_89 && ptxas-isa-8.1 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_89 -mattr=+ptx81 | %ptxas-verify -arch=sm_89 %}3 4; CHECK-LABEL: cvt_rn_e4m3x2_f325define i16 @cvt_rn_e4m3x2_f32(float %f1, float %f2) {6; CHECK: cvt.rn.satfinite.e4m3x2.f327 %val = call i16 @llvm.nvvm.ff.to.e4m3x2.rn(float %f1, float %f2);8 ret i16 %val9}10 11; CHECK-LABEL: cvt_rn_relu_e4m3x2_f3212define i16 @cvt_rn_relu_e4m3x2_f32(float %f1, float %f2) {13; CHECK: cvt.rn.satfinite.relu.e4m3x2.f3214 %val = call i16 @llvm.nvvm.ff.to.e4m3x2.rn.relu(float %f1, float %f2);15 ret i16 %val16}17 18; CHECK-LABEL: cvt_rn_e5m2x2_f3219define i16 @cvt_rn_e5m2x2_f32(float %f1, float %f2) {20; CHECK: cvt.rn.satfinite.e5m2x2.f3221 %val = call i16 @llvm.nvvm.ff.to.e5m2x2.rn(float %f1, float %f2);22 ret i16 %val23}24 25; CHECK-LABEL: cvt_rn_relu_e5m2x2_f3226define i16 @cvt_rn_relu_e5m2x2_f32(float %f1, float %f2) {27; CHECK: cvt.rn.satfinite.relu.e5m2x2.f3228 %val = call i16 @llvm.nvvm.ff.to.e5m2x2.rn.relu(float %f1, float %f2);29 ret i16 %val30}31 32; CHECK-LABEL: cvt_rn_e4m3x2_f16x233define i16 @cvt_rn_e4m3x2_f16x2(<2 x half> %in) {34; CHECK: cvt.rn.satfinite.e4m3x2.f16x235 %val = call i16 @llvm.nvvm.f16x2.to.e4m3x2.rn(<2 x half> %in);36 ret i16 %val37}38 39; CHECK-LABEL: cvt_rn_relu_e4m3x2_f16x240define i16 @cvt_rn_relu_e4m3x2_f16x2(<2 x half> %in) {41; CHECK: cvt.rn.satfinite.relu.e4m3x2.f16x242 %val = call i16 @llvm.nvvm.f16x2.to.e4m3x2.rn.relu(<2 x half> %in);43 ret i16 %val44}45 46; CHECK-LABEL: cvt_rn_e5m2x2_f16x247define i16 @cvt_rn_e5m2x2_f16x2(<2 x half> %in) {48; CHECK: cvt.rn.satfinite.e5m2x2.f16x249 %val = call i16 @llvm.nvvm.f16x2.to.e5m2x2.rn(<2 x half> %in);50 ret i16 %val51}52 53; CHECK-LABEL: cvt_rn_relu_e5m2x2_f16x254define i16 @cvt_rn_relu_e5m2x2_f16x2(<2 x half> %in) {55; CHECK: cvt.rn.satfinite.relu.e5m2x2.f16x256 %val = call i16 @llvm.nvvm.f16x2.to.e5m2x2.rn.relu(<2 x half> %in);57 ret i16 %val58}59 60; CHECK-LABEL: cvt_rn_f16x2_e4m3x261define <2 x half> @cvt_rn_f16x2_e4m3x2(i16 %in) {62; CHECK: cvt.rn.f16x2.e4m3x263 %val = call <2 x half> @llvm.nvvm.e4m3x2.to.f16x2.rn(i16 %in);64 ret <2 x half> %val65}66 67; CHECK-LABEL: cvt_rn_relu_f16x2_e4m3x268define <2 x half> @cvt_rn_relu_f16x2_e4m3x2(i16 %in) {69; CHECK: cvt.rn.relu.f16x2.e4m3x270 %val = call <2 x half> @llvm.nvvm.e4m3x2.to.f16x2.rn.relu(i16 %in);71 ret <2 x half> %val72}73 74; CHECK-LABEL: cvt_rn_f16x2_e5m2x275define <2 x half> @cvt_rn_f16x2_e5m2x2(i16 %in) {76; CHECK: cvt.rn.f16x2.e5m2x277 %val = call <2 x half> @llvm.nvvm.e5m2x2.to.f16x2.rn(i16 %in);78 ret <2 x half> %val79}80 81; CHECK-LABEL: cvt_rn_relu_f16x2_e5m2x282define <2 x half> @cvt_rn_relu_f16x2_e5m2x2(i16 %in) {83; CHECK: cvt.rn.relu.f16x2.e5m2x284 %val = call <2 x half> @llvm.nvvm.e5m2x2.to.f16x2.rn.relu(i16 %in);85 ret <2 x half> %val86}87