Skip to content

Commit 41c79fa

Browse files
committed
[RISCV] Verify vfwmaccbf16 and vfncvtbf16 FRM argument in SemaRISCV::CheckBuiltinFunctionCall.
We need to check that the FRM value is an integer constant expression with value 0-4.
1 parent 2135148 commit 41c79fa

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

clang/lib/Sema/SemaRISCV.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1000,6 +1000,7 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
10001000
case RISCVVector::BI__builtin_rvv_vfncvt_f_x_w_rm:
10011001
case RISCVVector::BI__builtin_rvv_vfncvt_f_xu_w_rm:
10021002
case RISCVVector::BI__builtin_rvv_vfncvt_f_f_w_rm:
1003+
case RISCVVector::BI__builtin_rvv_vfncvtbf16_f_f_w_rm:
10031004
return SemaRef.BuiltinConstantArgRange(TheCall, 1, 0, 4);
10041005
case RISCVVector::BI__builtin_rvv_vfadd_vv_rm:
10051006
case RISCVVector::BI__builtin_rvv_vfadd_vf_rm:
@@ -1038,6 +1039,7 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
10381039
case RISCVVector::BI__builtin_rvv_vfncvt_f_x_w_rm_tu:
10391040
case RISCVVector::BI__builtin_rvv_vfncvt_f_xu_w_rm_tu:
10401041
case RISCVVector::BI__builtin_rvv_vfncvt_f_f_w_rm_tu:
1042+
case RISCVVector::BI__builtin_rvv_vfncvtbf16_f_f_w_rm_tu:
10411043
case RISCVVector::BI__builtin_rvv_vfsqrt_v_rm_m:
10421044
case RISCVVector::BI__builtin_rvv_vfrec7_v_rm_m:
10431045
case RISCVVector::BI__builtin_rvv_vfcvt_x_f_v_rm_m:
@@ -1051,6 +1053,7 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
10511053
case RISCVVector::BI__builtin_rvv_vfncvt_f_x_w_rm_m:
10521054
case RISCVVector::BI__builtin_rvv_vfncvt_f_xu_w_rm_m:
10531055
case RISCVVector::BI__builtin_rvv_vfncvt_f_f_w_rm_m:
1056+
case RISCVVector::BI__builtin_rvv_vfncvtbf16_f_f_w_rm_m:
10541057
return SemaRef.BuiltinConstantArgRange(TheCall, 2, 0, 4);
10551058
case RISCVVector::BI__builtin_rvv_vfadd_vv_rm_tu:
10561059
case RISCVVector::BI__builtin_rvv_vfadd_vf_rm_tu:
@@ -1100,6 +1103,8 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
11001103
case RISCVVector::BI__builtin_rvv_vfwmsac_vf_rm:
11011104
case RISCVVector::BI__builtin_rvv_vfwnmsac_vv_rm:
11021105
case RISCVVector::BI__builtin_rvv_vfwnmsac_vf_rm:
1106+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vv_rm:
1107+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vf_rm:
11031108
case RISCVVector::BI__builtin_rvv_vfmacc_vv_rm_tu:
11041109
case RISCVVector::BI__builtin_rvv_vfmacc_vf_rm_tu:
11051110
case RISCVVector::BI__builtin_rvv_vfnmacc_vv_rm_tu:
@@ -1124,6 +1129,8 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
11241129
case RISCVVector::BI__builtin_rvv_vfwmsac_vf_rm_tu:
11251130
case RISCVVector::BI__builtin_rvv_vfwnmsac_vv_rm_tu:
11261131
case RISCVVector::BI__builtin_rvv_vfwnmsac_vf_rm_tu:
1132+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vv_rm_tu:
1133+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vf_rm_tu:
11271134
case RISCVVector::BI__builtin_rvv_vfadd_vv_rm_m:
11281135
case RISCVVector::BI__builtin_rvv_vfadd_vf_rm_m:
11291136
case RISCVVector::BI__builtin_rvv_vfsub_vv_rm_m:
@@ -1161,6 +1168,7 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
11611168
case RISCVVector::BI__builtin_rvv_vfncvt_f_x_w_rm_tum:
11621169
case RISCVVector::BI__builtin_rvv_vfncvt_f_xu_w_rm_tum:
11631170
case RISCVVector::BI__builtin_rvv_vfncvt_f_f_w_rm_tum:
1171+
case RISCVVector::BI__builtin_rvv_vfncvtbf16_f_f_w_rm_tum:
11641172
case RISCVVector::BI__builtin_rvv_vfsqrt_v_rm_tumu:
11651173
case RISCVVector::BI__builtin_rvv_vfrec7_v_rm_tumu:
11661174
case RISCVVector::BI__builtin_rvv_vfcvt_x_f_v_rm_tumu:
@@ -1174,6 +1182,7 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
11741182
case RISCVVector::BI__builtin_rvv_vfncvt_f_x_w_rm_tumu:
11751183
case RISCVVector::BI__builtin_rvv_vfncvt_f_xu_w_rm_tumu:
11761184
case RISCVVector::BI__builtin_rvv_vfncvt_f_f_w_rm_tumu:
1185+
case RISCVVector::BI__builtin_rvv_vfncvtbf16_f_f_w_rm_tumu:
11771186
case RISCVVector::BI__builtin_rvv_vfsqrt_v_rm_mu:
11781187
case RISCVVector::BI__builtin_rvv_vfrec7_v_rm_mu:
11791188
case RISCVVector::BI__builtin_rvv_vfcvt_x_f_v_rm_mu:
@@ -1187,6 +1196,7 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
11871196
case RISCVVector::BI__builtin_rvv_vfncvt_f_x_w_rm_mu:
11881197
case RISCVVector::BI__builtin_rvv_vfncvt_f_xu_w_rm_mu:
11891198
case RISCVVector::BI__builtin_rvv_vfncvt_f_f_w_rm_mu:
1199+
case RISCVVector::BI__builtin_rvv_vfncvtbf16_f_f_w_rm_mu:
11901200
return SemaRef.BuiltinConstantArgRange(TheCall, 3, 0, 4);
11911201
case RISCVVector::BI__builtin_rvv_vfmacc_vv_rm_m:
11921202
case RISCVVector::BI__builtin_rvv_vfmacc_vf_rm_m:
@@ -1212,6 +1222,8 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
12121222
case RISCVVector::BI__builtin_rvv_vfwmsac_vf_rm_m:
12131223
case RISCVVector::BI__builtin_rvv_vfwnmsac_vv_rm_m:
12141224
case RISCVVector::BI__builtin_rvv_vfwnmsac_vf_rm_m:
1225+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vv_rm_m:
1226+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vf_rm_m:
12151227
case RISCVVector::BI__builtin_rvv_vfadd_vv_rm_tum:
12161228
case RISCVVector::BI__builtin_rvv_vfadd_vf_rm_tum:
12171229
case RISCVVector::BI__builtin_rvv_vfsub_vv_rm_tum:
@@ -1256,6 +1268,8 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
12561268
case RISCVVector::BI__builtin_rvv_vfwmsac_vf_rm_tum:
12571269
case RISCVVector::BI__builtin_rvv_vfwnmsac_vv_rm_tum:
12581270
case RISCVVector::BI__builtin_rvv_vfwnmsac_vf_rm_tum:
1271+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vv_rm_tum:
1272+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vf_rm_tum:
12591273
case RISCVVector::BI__builtin_rvv_vfredosum_vs_rm_tum:
12601274
case RISCVVector::BI__builtin_rvv_vfredusum_vs_rm_tum:
12611275
case RISCVVector::BI__builtin_rvv_vfwredosum_vs_rm_tum:
@@ -1304,6 +1318,8 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
13041318
case RISCVVector::BI__builtin_rvv_vfwmsac_vf_rm_tumu:
13051319
case RISCVVector::BI__builtin_rvv_vfwnmsac_vv_rm_tumu:
13061320
case RISCVVector::BI__builtin_rvv_vfwnmsac_vf_rm_tumu:
1321+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vv_rm_tumu:
1322+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vf_rm_tumu:
13071323
case RISCVVector::BI__builtin_rvv_vfadd_vv_rm_mu:
13081324
case RISCVVector::BI__builtin_rvv_vfadd_vf_rm_mu:
13091325
case RISCVVector::BI__builtin_rvv_vfsub_vv_rm_mu:
@@ -1348,6 +1364,8 @@ bool SemaRISCV::CheckBuiltinFunctionCall(const TargetInfo &TI,
13481364
case RISCVVector::BI__builtin_rvv_vfwmsac_vf_rm_mu:
13491365
case RISCVVector::BI__builtin_rvv_vfwnmsac_vv_rm_mu:
13501366
case RISCVVector::BI__builtin_rvv_vfwnmsac_vf_rm_mu:
1367+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vv_rm_mu:
1368+
case RISCVVector::BI__builtin_rvv_vfwmaccbf16_vf_rm_mu:
13511369
return SemaRef.BuiltinConstantArgRange(TheCall, 4, 0, 4);
13521370
case RISCV::BI__builtin_riscv_ntl_load:
13531371
case RISCV::BI__builtin_riscv_ntl_store:

0 commit comments

Comments
 (0)