@@ -115,7 +115,7 @@ intrinsics:
115115 assert_instr : [[fcmla, "IMM_INDEX = 0, IMM_ROTATION = 90"]]
116116 compose :
117117 - LLVMLink :
118- name : fcmla.lane.x. {sve_type}
118+ name : fcmla.lane.{sve_type}
119119 arguments :
120120 - " op1: {sve_type}"
121121 - " op2: {sve_type}"
@@ -4179,14 +4179,32 @@ intrinsics:
41794179 ["inactive : {sve_type[0]}", "pg: {max_predicate}", "op: {sve_type[1]}"]
41804180 return_type : " {sve_type[0]}"
41814181 types :
4182- - [[f32, f64], [i32, u32, i64, u64]]
4182+ - [f32, [i64, u64]]
4183+ - [f64, [i32, u32]]
41834184 zeroing_method : { drop: inactive }
41844185 substitutions :
41854186 convert_from : { match_kind: "{type[1]}", default: s, unsigned: u }
41864187 assert_instr : ["{convert_from}cvtf"]
41874188 compose :
41884189 - LLVMLink :
41894190 name : " {convert_from}cvtf.{type[0]}{type[1]}"
4191+
4192+ - name : svcvt_{type[0]}[_{type[1]}]{_mxz}
4193+ attr : [*sve-unstable]
4194+ doc : Floating-point convert
4195+ arguments :
4196+ ["inactive : {sve_type[0]}", "pg: {max_predicate}", "op: {sve_type[1]}"]
4197+ return_type : " {sve_type[0]}"
4198+ types :
4199+ - [f32, [i32, u32]]
4200+ - [f64, [i64, u64]]
4201+ zeroing_method : { drop: inactive }
4202+ substitutions :
4203+ convert_from : { match_kind: "{type[1]}", default: s, unsigned: u }
4204+ assert_instr : ["{convert_from}cvtf"]
4205+ compose :
4206+ - LLVMLink :
4207+ name : " {convert_from}cvtf.{sve_type[0]}.{sve_type[1]}"
41904208
41914209 - name : svcvt_{type[0]}[_{type[1]}]{_mxz}
41924210 attr : [*sve-unstable]
@@ -4195,13 +4213,30 @@ intrinsics:
41954213 ["inactive : {sve_type[0]}", "pg: {max_predicate}", "op: {sve_type[1]}"]
41964214 return_type : " {sve_type[0]}"
41974215 types :
4198- - [[i32, u32, i64, u64], [f32, f64]]
4216+ - [[i32, u32], f64]
4217+ - [[i64, u64], f32]
41994218 zeroing_method : { drop: inactive }
42004219 substitutions :
42014220 convert_to : { match_kind: "{type[0]}", default: s, unsigned: u }
42024221 assert_instr : ["fcvtz{convert_to}"]
42034222 compose :
42044223 - LLVMLink : { name: "fcvtz{convert_to}.{type[0]}{type[1]}" }
4224+
4225+ - name : svcvt_{type[0]}[_{type[1]}]{_mxz}
4226+ attr : [*sve-unstable]
4227+ doc : Floating-point convert
4228+ arguments :
4229+ ["inactive : {sve_type[0]}", "pg: {max_predicate}", "op: {sve_type[1]}"]
4230+ return_type : " {sve_type[0]}"
4231+ types :
4232+ - [[i32, u32], f32]
4233+ - [[i64, u64], f64]
4234+ zeroing_method : { drop: inactive }
4235+ substitutions :
4236+ convert_to : { match_kind: "{type[0]}", default: s, unsigned: u }
4237+ assert_instr : ["fcvtz{convert_to}"]
4238+ compose :
4239+ - LLVMLink : { name: "fcvtz{convert_to}.{sve_type[0]}.{sve_type[1]}" }
42054240
42064241 - name : svcvt_{type[0]}[_{type[1]}]{_mxz}
42074242 attr : [*sve-unstable]
@@ -4356,7 +4391,7 @@ intrinsics:
43564391 return_type : svbool_t
43574392 assert_instr : [and]
43584393 compose :
4359- - LLVMLink : { name: "and.z.nvx16i1 " }
4394+ - LLVMLink : { name: "and.z.nxv16i1 " }
43604395
43614396 - name : svmov[_b]_z
43624397 attr : [*sve-unstable]
@@ -4386,7 +4421,7 @@ intrinsics:
43864421 return_type : svbool_t
43874422 assert_instr : [bic]
43884423 compose :
4389- - LLVMLink : { name: "bic.z.nvx16i1 " }
4424+ - LLVMLink : { name: "bic.z.nxv16i1 " }
43904425
43914426 - name : sveor[{_n}_{type}]{_mxz}
43924427 attr : [*sve-unstable]
@@ -4417,7 +4452,7 @@ intrinsics:
44174452 return_type : svbool_t
44184453 assert_instr : [eor]
44194454 compose :
4420- - LLVMLink : { name: "eor.z.nvx16i1 " }
4455+ - LLVMLink : { name: "eor.z.nxv16i1 " }
44214456
44224457 - name : svnot[_{type}]{_mxz}
44234458 attr : [*sve-unstable]
@@ -4497,7 +4532,7 @@ intrinsics:
44974532 return_type : svbool_t
44984533 assert_instr : [orr]
44994534 compose :
4500- - LLVMLink : { name: "orr.z.nvx16i1 " }
4535+ - LLVMLink : { name: "orr.z.nxv16i1 " }
45014536
45024537 - name : svorn[_b]_z
45034538 attr : [*sve-unstable]
@@ -4506,7 +4541,7 @@ intrinsics:
45064541 return_type : svbool_t
45074542 assert_instr : [orn]
45084543 compose :
4509- - LLVMLink : { name: "orn.z.nvx16i1 " }
4544+ - LLVMLink : { name: "orn.z.nxv16i1 " }
45104545
45114546 - name : svlsl[{_n}_{type[0]}]{_mxz}
45124547 attr : [*sve-unstable]
@@ -4749,7 +4784,7 @@ intrinsics:
47494784 assert_instr : [frecpx]
47504785 zeroing_method : { drop: inactive }
47514786 compose :
4752- - LLVMLink : { name: "frecpx.x. {sve_type}" }
4787+ - LLVMLink : { name: "frecpx.{sve_type}" }
47534788
47544789 - name : svrsqrte[_{type}]
47554790 attr : [*sve-unstable]
@@ -5115,7 +5150,7 @@ intrinsics:
51155150 types : [[f32, u32], [f64, u64]]
51165151 assert_instr : [fexpa]
51175152 compose :
5118- - LLVMLink : { name: "fexpa.x.{sve_type[0]} " }
5153+ - LLVMLink : { name: "fexpa.x.{sve_type[0]}" }
51195154
51205155 - name : svscale[{_n}_{type[0]}]{_mxz}
51215156 attr : [*sve-unstable]
@@ -5139,7 +5174,7 @@ intrinsics:
51395174 types : [f32]
51405175 assert_instr : [fmmla]
51415176 compose :
5142- - LLVMLink : { name: "fmmla.{sve_type}" }
5177+ - LLVMLink : { name: "fmmla.{sve_type}.{sve_type} " }
51435178
51445179 - name : svmmla[_{type}]
51455180 attr : [*sve-unstable]
@@ -5150,7 +5185,7 @@ intrinsics:
51505185 types : [f64]
51515186 assert_instr : [fmmla]
51525187 compose :
5153- - LLVMLink : { name: "fmmla.{sve_type}" }
5188+ - LLVMLink : { name: "fmmla.{sve_type}.{sve_type} " }
51545189
51555190 - name : svmmla[_{type[0]}]
51565191 attr : [*sve-unstable]
0 commit comments