5
5
// CHECK-LABEL: @convert_f32x2_to_f8x2_e4m3
6
6
llvm.func @convert_f32x2_to_f8x2_e4m3 (%srcA : f32 , %srcB : f32 ) {
7
7
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.e4m3x2.rn(float %{{.*}}, float %{{.*}})
8
- %res1 = nvvm.cvt .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
8
+ %res1 = nvvm.convert .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
9
9
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.e4m3x2.rn.relu(float %{{.*}}, float %{{.*}})
10
- %res2 = nvvm.cvt .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {relu = true , rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
10
+ %res2 = nvvm.convert .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {relu = true , rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
11
11
llvm.return
12
12
}
13
13
14
14
// CHECK-LABEL: @convert_f32x2_to_f8x2_e5m2
15
15
llvm.func @convert_f32x2_to_f8x2_e5m2 (%srcA : f32 , %srcB : f32 ) {
16
16
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.e5m2x2.rn(float %{{.*}}, float %{{.*}})
17
- %res1 = nvvm.cvt .f32x2.to.f8x2 <e5m2 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
17
+ %res1 = nvvm.convert .f32x2.to.f8x2 <e5m2 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
18
18
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.e5m2x2.rn.relu(float %{{.*}}, float %{{.*}})
19
- %res2 = nvvm.cvt .f32x2.to.f8x2 <e5m2 > %srcA , %srcB {relu = true , rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
19
+ %res2 = nvvm.convert .f32x2.to.f8x2 <e5m2 > %srcA , %srcB {relu = true , rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : i16
20
20
llvm.return
21
21
}
22
22
23
23
// CHECK-LABEL: @convert_f32x2_to_f8x2_ue8m0
24
24
llvm.func @convert_f32x2_to_f8x2_ue8m0 (%srcA : f32 , %srcB : f32 ) {
25
25
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.ue8m0x2.rz(float %{{.*}}, float %{{.*}})
26
- %res1 = nvvm.cvt .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rz >} : i16
26
+ %res1 = nvvm.convert .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rz >} : i16
27
27
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.ue8m0x2.rp(float %{{.*}}, float %{{.*}})
28
- %res2 = nvvm.cvt .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rp >} : i16
28
+ %res2 = nvvm.convert .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rp >} : i16
29
29
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.ue8m0x2.rz.satfinite(float %{{.*}}, float %{{.*}})
30
- %res3 = nvvm.cvt .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rz >, sat = #nvvm.sat_mode <satfinite >} : i16
30
+ %res3 = nvvm.convert .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rz >, sat = #nvvm.sat_mode <satfinite >} : i16
31
31
// CHECK: %{{.*}} = call i16 @llvm.nvvm.ff.to.ue8m0x2.rp.satfinite(float %{{.*}}, float %{{.*}})
32
- %res4 = nvvm.cvt .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rp >, sat = #nvvm.sat_mode <satfinite >} : i16
32
+ %res4 = nvvm.convert .f32x2.to.f8x2 <ue8m0 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rp >, sat = #nvvm.sat_mode <satfinite >} : i16
33
33
llvm.return
34
34
}
35
35
36
36
// CHECK-LABEL: @convert_f32x2_to_f8x2_vector_return
37
37
llvm.func @convert_f32x2_to_f8x2_vector_return (%srcA : f32 , %srcB : f32 ) {
38
38
// CHECK: %[[res1:.*]] = call i16 @llvm.nvvm.ff.to.e4m3x2.rn(float %{{.*}}, float %{{.*}})
39
39
// CHECK-NEXT: %{{.*}} = bitcast i16 %[[res1]] to <2 x i8>
40
- %res1 = nvvm.cvt .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xi8 >
40
+ %res1 = nvvm.convert .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xi8 >
41
41
// CHECK: %[[res2:.*]] = call i16 @llvm.nvvm.ff.to.e4m3x2.rn.relu(float %{{.*}}, float %{{.*}})
42
42
// CHECK-NEXT: %{{.*}} = bitcast i16 %[[res2]] to <2 x i8>
43
- %res2 = nvvm.cvt .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {relu = true , rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xi8 >
43
+ %res2 = nvvm.convert .f32x2.to.f8x2 <e4m3 > %srcA , %srcB {relu = true , rnd = #nvvm.fp_rnd_mode <rn >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xi8 >
44
44
llvm.return
45
45
}
46
46
@@ -49,29 +49,29 @@ llvm.func @convert_f32x2_to_f8x2_vector_return(%srcA : f32, %srcB : f32) {
49
49
// CHECK-LABEL: @convert_f16x2_to_f8x2_e4m3
50
50
llvm.func @convert_f16x2_to_f8x2_e4m3 (%src : vector <2 xf16 >) {
51
51
// CHECK: %{{.*}} = call i16 @llvm.nvvm.f16x2.to.e4m3x2.rn(<2 x half> %{{.*}})
52
- %res1 = nvvm.cvt .f16x2.to.f8x2 <e4m3 > %src : vector <2 xf16 > -> i16
52
+ %res1 = nvvm.convert .f16x2.to.f8x2 <e4m3 > %src : vector <2 xf16 > -> i16
53
53
// CHECK: %{{.*}} = call i16 @llvm.nvvm.f16x2.to.e4m3x2.rn.relu(<2 x half> %{{.*}})
54
- %res2 = nvvm.cvt .f16x2.to.f8x2 <e4m3 > %src {relu = true } : vector <2 xf16 > -> i16
54
+ %res2 = nvvm.convert .f16x2.to.f8x2 <e4m3 > %src {relu = true } : vector <2 xf16 > -> i16
55
55
llvm.return
56
56
}
57
57
58
58
// CHECK-LABEL: @convert_f16x2_to_f8x2_e5m2
59
59
llvm.func @convert_f16x2_to_f8x2_e5m2 (%src : vector <2 xf16 >) {
60
60
// CHECK: %{{.*}} = call i16 @llvm.nvvm.f16x2.to.e5m2x2.rn(<2 x half> %{{.*}})
61
- %res1 = nvvm.cvt .f16x2.to.f8x2 <e5m2 > %src : vector <2 xf16 > -> i16
61
+ %res1 = nvvm.convert .f16x2.to.f8x2 <e5m2 > %src : vector <2 xf16 > -> i16
62
62
// CHECK: %{{.*}} = call i16 @llvm.nvvm.f16x2.to.e5m2x2.rn.relu(<2 x half> %{{.*}})
63
- %res2 = nvvm.cvt .f16x2.to.f8x2 <e5m2 > %src {relu = true } : vector <2 xf16 > -> i16
63
+ %res2 = nvvm.convert .f16x2.to.f8x2 <e5m2 > %src {relu = true } : vector <2 xf16 > -> i16
64
64
llvm.return
65
65
}
66
66
67
67
// CHECK-LABEL: @convert_f16x2_to_f8x2_vector_return
68
68
llvm.func @convert_f16x2_to_f8x2_vector_return (%src : vector <2 xf16 >) {
69
69
// CHECK: %[[res1:.*]] = call i16 @llvm.nvvm.f16x2.to.e4m3x2.rn(<2 x half> %{{.*}})
70
70
// CHECK-NEXT: %{{.*}} = bitcast i16 %[[res1]] to <2 x i8>
71
- %res1 = nvvm.cvt .f16x2.to.f8x2 <e4m3 > %src : vector <2 xf16 > -> vector <2 xi8 >
71
+ %res1 = nvvm.convert .f16x2.to.f8x2 <e4m3 > %src : vector <2 xf16 > -> vector <2 xi8 >
72
72
// CHECK: %[[res2:.*]] = call i16 @llvm.nvvm.f16x2.to.e5m2x2.rn(<2 x half> %{{.*}})
73
73
// CHECK-NEXT: %{{.*}} = bitcast i16 %[[res2]] to <2 x i8>
74
- %res2 = nvvm.cvt .f16x2.to.f8x2 <e5m2 > %src : vector <2 xf16 > -> vector <2 xi8 >
74
+ %res2 = nvvm.convert .f16x2.to.f8x2 <e5m2 > %src : vector <2 xf16 > -> vector <2 xi8 >
75
75
llvm.return
76
76
}
77
77
@@ -80,23 +80,23 @@ llvm.func @convert_f16x2_to_f8x2_vector_return(%src : vector<2xf16>) {
80
80
// CHECK-LABEL: @convert_bf16x2_to_f8x2_ue8m0
81
81
llvm.func @convert_bf16x2_to_f8x2_ue8m0 (%src : vector <2 xbf16 >) {
82
82
// CHECK: %{{.*}} = call i16 @llvm.nvvm.bf16x2.to.ue8m0x2.rz(<2 x bfloat> %{{.*}})
83
- %res1 = nvvm.cvt .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rz >} : vector <2 xbf16 > -> i16
83
+ %res1 = nvvm.convert .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rz >} : vector <2 xbf16 > -> i16
84
84
// CHECK: %{{.*}} = call i16 @llvm.nvvm.bf16x2.to.ue8m0x2.rp(<2 x bfloat> %{{.*}})
85
- %res2 = nvvm.cvt .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rp >} : vector <2 xbf16 > -> i16
85
+ %res2 = nvvm.convert .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rp >} : vector <2 xbf16 > -> i16
86
86
// CHECK: %{{.*}} = call i16 @llvm.nvvm.bf16x2.to.ue8m0x2.rz.satfinite(<2 x bfloat> %{{.*}})
87
- %res3 = nvvm.cvt .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rz >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xbf16 > -> i16
87
+ %res3 = nvvm.convert .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rz >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xbf16 > -> i16
88
88
// CHECK: %{{.*}} = call i16 @llvm.nvvm.bf16x2.to.ue8m0x2.rp.satfinite(<2 x bfloat> %{{.*}})
89
- %res4 = nvvm.cvt .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rp >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xbf16 > -> i16
89
+ %res4 = nvvm.convert .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rp >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xbf16 > -> i16
90
90
llvm.return
91
91
}
92
92
93
93
// CHECK-LABEL: @convert_bf16x2_to_f8x2_vector_return
94
94
llvm.func @convert_bf16x2_to_f8x2_vector_return (%src : vector <2 xbf16 >) {
95
95
// CHECK: %[[res1:.*]] = call i16 @llvm.nvvm.bf16x2.to.ue8m0x2.rz(<2 x bfloat> %{{.*}})
96
96
// CHECK-NEXT: %{{.*}} = bitcast i16 %[[res1]] to <2 x i8>
97
- %res1 = nvvm.cvt .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rz >} : vector <2 xbf16 > -> vector <2 xi8 >
97
+ %res1 = nvvm.convert .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rz >} : vector <2 xbf16 > -> vector <2 xi8 >
98
98
// CHECK: %[[res2:.*]] = call i16 @llvm.nvvm.bf16x2.to.ue8m0x2.rp.satfinite(<2 x bfloat> %{{.*}})
99
99
// CHECK-NEXT: %{{.*}} = bitcast i16 %[[res2]] to <2 x i8>
100
- %res2 = nvvm.cvt .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rp >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xbf16 > -> vector <2 xi8 >
100
+ %res2 = nvvm.convert .bf16x2.to.f8x2 <ue8m0 > %src {rnd = #nvvm.fp_rnd_mode <rp >, sat = #nvvm.sat_mode <satfinite >} : vector <2 xbf16 > -> vector <2 xi8 >
101
101
llvm.return
102
102
}
0 commit comments