[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / NVPTX / convert-sm89.ll
blob5a1a640afc1cf9cfee900d18ecb1bde9e37f9973
1 ; RUN: llc < %s -march=nvptx64 -mcpu=sm_89 -mattr=+ptx81 | FileCheck %s
2 ; RUN: %if ptxas-12.1 %{ llc < %s -march=nvptx64 -mcpu=sm_89 -mattr=+ptx81 | %ptxas-verify -arch=sm_89 %}
4 ; CHECK-LABEL: cvt_rn_e4m3x2_f32
5 define i16 @cvt_rn_e4m3x2_f32(float %f1, float %f2) {
6 ; CHECK: cvt.rn.satfinite.e4m3x2.f32
7   %val = call i16 @llvm.nvvm.ff.to.e4m3x2.rn(float %f1, float %f2);
8   ret i16 %val
11 ; CHECK-LABEL: cvt_rn_relu_e4m3x2_f32
12 define i16 @cvt_rn_relu_e4m3x2_f32(float %f1, float %f2) {
13 ; CHECK: cvt.rn.satfinite.relu.e4m3x2.f32
14   %val = call i16 @llvm.nvvm.ff.to.e4m3x2.rn.relu(float %f1, float %f2);
15   ret i16 %val
18 ; CHECK-LABEL: cvt_rn_e5m2x2_f32
19 define i16 @cvt_rn_e5m2x2_f32(float %f1, float %f2) {
20 ; CHECK: cvt.rn.satfinite.e5m2x2.f32
21   %val = call i16 @llvm.nvvm.ff.to.e5m2x2.rn(float %f1, float %f2);
22   ret i16 %val
25 ; CHECK-LABEL: cvt_rn_relu_e5m2x2_f32
26 define i16 @cvt_rn_relu_e5m2x2_f32(float %f1, float %f2) {
27 ; CHECK: cvt.rn.satfinite.relu.e5m2x2.f32
28   %val = call i16 @llvm.nvvm.ff.to.e5m2x2.rn.relu(float %f1, float %f2);
29   ret i16 %val
32 ; CHECK-LABEL: cvt_rn_e4m3x2_f16x2
33 define i16 @cvt_rn_e4m3x2_f16x2(<2 x half> %in) {
34 ; CHECK: cvt.rn.satfinite.e4m3x2.f16x2
35   %val = call i16 @llvm.nvvm.f16x2.to.e4m3x2.rn(<2 x half> %in);
36   ret i16 %val
39 ; CHECK-LABEL: cvt_rn_relu_e4m3x2_f16x2
40 define i16 @cvt_rn_relu_e4m3x2_f16x2(<2 x half> %in) {
41 ; CHECK: cvt.rn.satfinite.relu.e4m3x2.f16x2
42   %val = call i16 @llvm.nvvm.f16x2.to.e4m3x2.rn.relu(<2 x half> %in);
43   ret i16 %val
46 ; CHECK-LABEL: cvt_rn_e5m2x2_f16x2
47 define i16 @cvt_rn_e5m2x2_f16x2(<2 x half> %in) {
48 ; CHECK: cvt.rn.satfinite.e5m2x2.f16x2
49   %val = call i16 @llvm.nvvm.f16x2.to.e5m2x2.rn(<2 x half> %in);
50   ret i16 %val
53 ; CHECK-LABEL: cvt_rn_relu_e5m2x2_f16x2
54 define i16 @cvt_rn_relu_e5m2x2_f16x2(<2 x half> %in) {
55 ; CHECK: cvt.rn.satfinite.relu.e5m2x2.f16x2
56   %val = call i16 @llvm.nvvm.f16x2.to.e5m2x2.rn.relu(<2 x half> %in);
57   ret i16 %val
60 ; CHECK-LABEL: cvt_rn_f16x2_e4m3x2
61 define <2 x half> @cvt_rn_f16x2_e4m3x2(i16 %in) {
62 ; CHECK: cvt.rn.f16x2.e4m3x2
63   %val = call <2 x half> @llvm.nvvm.e4m3x2.to.f16x2.rn(i16 %in);
64   ret <2 x half> %val
67 ; CHECK-LABEL: cvt_rn_relu_f16x2_e4m3x2
68 define <2 x half> @cvt_rn_relu_f16x2_e4m3x2(i16 %in) {
69 ; CHECK: cvt.rn.relu.f16x2.e4m3x2
70   %val = call <2 x half> @llvm.nvvm.e4m3x2.to.f16x2.rn.relu(i16 %in);
71   ret <2 x half> %val
74 ; CHECK-LABEL: cvt_rn_f16x2_e5m2x2
75 define <2 x half> @cvt_rn_f16x2_e5m2x2(i16 %in) {
76 ; CHECK: cvt.rn.f16x2.e5m2x2
77   %val = call <2 x half> @llvm.nvvm.e5m2x2.to.f16x2.rn(i16 %in);
78   ret <2 x half> %val
81 ; CHECK-LABEL: cvt_rn_relu_f16x2_e5m2x2
82 define <2 x half> @cvt_rn_relu_f16x2_e5m2x2(i16 %in) {
83 ; CHECK: cvt.rn.relu.f16x2.e5m2x2
84   %val = call <2 x half> @llvm.nvvm.e5m2x2.to.f16x2.rn.relu(i16 %in);
85   ret <2 x half> %val