Paul-C-Anagnostopoulos updated this revision to Diff 344810. Paul-C-Anagnostopoulos added a comment.
One must amend the commit when one makes changes to the files. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D102238/new/ https://reviews.llvm.org/D102238 Files: clang/include/clang/Basic/arm_mve.td Index: clang/include/clang/Basic/arm_mve.td =================================================================== --- clang/include/clang/Basic/arm_mve.td +++ clang/include/clang/Basic/arm_mve.td @@ -575,7 +575,7 @@ } foreach half = [ "b", "t" ] in { - defvar halfconst = !if(!eq(half, "b"), 0, 1); + defvar halfconst = !ne(half, "b"); let params = [f32], pnt = PNT_None in { def vcvt#half#q_f16: Intrinsic< @@ -1153,8 +1153,7 @@ multiclass DyadicImmShift<Type outtype, Immediate imm, string intname = NAME, dag extraargs = (?)> { - defvar intparams = !if(!eq(!cast<string>(outtype), !cast<string>(Vector)), - [Vector], [outtype, Vector]); + defvar intparams = !if(!eq(outtype, Vector), [Vector], [outtype, Vector]); def q_n: Intrinsic< outtype, (args outtype:$a, Vector:$b, imm:$sh), @@ -1532,9 +1531,7 @@ // // So this foldl expression implements what you'd write in Python as // [srctype for srctype in T.All if srctype != desttype] - let params = !foldl([]<Type>, T.All, tlist, srctype, !listconcat(tlist, - !if(!eq(!cast<string>(desttype),!cast<string>(srctype)),[],[srctype]))) - in { + let params = !filter(srctype, T.All, !ne(srctype, desttype)) in { def "vreinterpretq_" # desttype: Intrinsic< VecOf<desttype>, (args Vector:$x), (vreinterpret $x, VecOf<desttype>)>; } @@ -1576,8 +1573,9 @@ defvar is_dest_float = !eq(desttype.kind, "f"); defvar is_dest_unsigned = !eq(desttype.kind, "u"); // First immediate operand of the LLVM intrinsic - defvar unsigned_flag = !if(is_dest_float, (unsignedflag Scalar), - !if(is_dest_unsigned, V.True, V.False)); + defvar unsigned_flag = !cond(is_dest_float: (unsignedflag Scalar), + is_dest_unsigned: V.True, + true: V.False); // For float->int conversions _n and _x_n intrinsics are not polymorphic // because the signedness of the destination type cannot be inferred. defvar pnt_nx = !if(is_dest_float, PNT_2Type, PNT_None);
Index: clang/include/clang/Basic/arm_mve.td =================================================================== --- clang/include/clang/Basic/arm_mve.td +++ clang/include/clang/Basic/arm_mve.td @@ -575,7 +575,7 @@ } foreach half = [ "b", "t" ] in { - defvar halfconst = !if(!eq(half, "b"), 0, 1); + defvar halfconst = !ne(half, "b"); let params = [f32], pnt = PNT_None in { def vcvt#half#q_f16: Intrinsic< @@ -1153,8 +1153,7 @@ multiclass DyadicImmShift<Type outtype, Immediate imm, string intname = NAME, dag extraargs = (?)> { - defvar intparams = !if(!eq(!cast<string>(outtype), !cast<string>(Vector)), - [Vector], [outtype, Vector]); + defvar intparams = !if(!eq(outtype, Vector), [Vector], [outtype, Vector]); def q_n: Intrinsic< outtype, (args outtype:$a, Vector:$b, imm:$sh), @@ -1532,9 +1531,7 @@ // // So this foldl expression implements what you'd write in Python as // [srctype for srctype in T.All if srctype != desttype] - let params = !foldl([]<Type>, T.All, tlist, srctype, !listconcat(tlist, - !if(!eq(!cast<string>(desttype),!cast<string>(srctype)),[],[srctype]))) - in { + let params = !filter(srctype, T.All, !ne(srctype, desttype)) in { def "vreinterpretq_" # desttype: Intrinsic< VecOf<desttype>, (args Vector:$x), (vreinterpret $x, VecOf<desttype>)>; } @@ -1576,8 +1573,9 @@ defvar is_dest_float = !eq(desttype.kind, "f"); defvar is_dest_unsigned = !eq(desttype.kind, "u"); // First immediate operand of the LLVM intrinsic - defvar unsigned_flag = !if(is_dest_float, (unsignedflag Scalar), - !if(is_dest_unsigned, V.True, V.False)); + defvar unsigned_flag = !cond(is_dest_float: (unsignedflag Scalar), + is_dest_unsigned: V.True, + true: V.False); // For float->int conversions _n and _x_n intrinsics are not polymorphic // because the signedness of the destination type cannot be inferred. defvar pnt_nx = !if(is_dest_float, PNT_2Type, PNT_None);
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits