> On 29 Jul 2025, at 15:31, Richard Sandiford <richard.sandif...@arm.com> wrote:
> 
> The 8-bit and 16-bit tests in cmpbr.c assumed an inverted operand
> order ("w1, w0"), but it's possible to use the uninverted operand
> order too.  This patch generalises the tests to support both forms.
> 
> This is a prerequisite for a later patch that adds a new
> simplify-rtx.cc rule.
> 
> Tested on aarch64-linux-gnu.  OK to install?
> 

Ok for this and 2/2
Thanks,
Kyrill


> Richard
> 
> 
> gcc/testsuite/
> * gcc.target/aarch64/cmpbr.c: Support both operand orders
> for 8-bit and 16-bit comparisons.
> ---
> gcc/testsuite/gcc.target/aarch64/cmpbr.c | 40 ++++++++++++------------
> 1 file changed, 20 insertions(+), 20 deletions(-)
> 
> diff --git a/gcc/testsuite/gcc.target/aarch64/cmpbr.c 
> b/gcc/testsuite/gcc.target/aarch64/cmpbr.c
> index a86af9dce8e..34630f9a2bf 100644
> --- a/gcc/testsuite/gcc.target/aarch64/cmpbr.c
> +++ b/gcc/testsuite/gcc.target/aarch64/cmpbr.c
> @@ -121,7 +121,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u8_x0_eq_x1:
> -** cbbeq w1, w0, .L([0-9]+)
> +** cbbeq (?:w1, w0|w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -129,7 +129,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u8_x0_ne_x1:
> -** cbbne w1, w0, .L([0-9]+)
> +** cbbne (?:w1, w0|w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -137,7 +137,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u8_x0_ult_x1:
> -** cbbhi w1, w0, .L([0-9]+)
> +** (?:cbbhi w1, w0|cbblo w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -145,7 +145,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u8_x0_ule_x1:
> -** cbbhs w1, w0, .L([0-9]+)
> +** (?:cbbhs w1, w0|cbbls w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -153,7 +153,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u8_x0_ugt_x1:
> -** cbblo w1, w0, .L([0-9]+)
> +** (?:cbblo w1, w0|cbbhi w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -161,7 +161,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u8_x0_uge_x1:
> -** cbbls w1, w0, .L([0-9]+)
> +** (?:cbbls w1, w0|cbbhs w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -169,7 +169,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i8_x0_slt_x1:
> -** cbbgt w1, w0, .L([0-9]+)
> +** (?:cbbgt w1, w0|cbblt w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -177,7 +177,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i8_x0_sle_x1:
> -** cbbge w1, w0, .L([0-9]+)
> +** (?:cbbge w1, w0|cbble w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -185,7 +185,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i8_x0_sgt_x1:
> -** cbblt w1, w0, .L([0-9]+)
> +** (?:cbblt w1, w0|cbbgt w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -193,7 +193,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i8_x0_sge_x1:
> -** cbble w1, w0, .L([0-9]+)
> +** (?:cbble w1, w0|cbbge w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -201,7 +201,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u16_x0_eq_x1:
> -** cbheq w1, w0, .L([0-9]+)
> +** cbheq (?:w1, w0|w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -209,7 +209,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u16_x0_ne_x1:
> -** cbhne w0|w1, w1|w0, .L([0-9]+)
> +** cbhne (?:w1, w0|w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -217,7 +217,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u16_x0_ult_x1:
> -** cbhhi w1, w0, .L([0-9]+)
> +** (?:cbhhi w1, w0|cbhlo w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -225,7 +225,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u16_x0_ule_x1:
> -** cbhhs w1, w0, .L([0-9]+)
> +** (?:cbhhs w1, w0|cbhls w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -233,7 +233,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u16_x0_ugt_x1:
> -** cbhlo w1, w0, .L([0-9]+)
> +** (?:cbhlo w1, w0|cbhhi w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -241,7 +241,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** u16_x0_uge_x1:
> -** cbhls w1, w0, .L([0-9]+)
> +** (?:cbhls w1, w0|cbhhs w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -249,7 +249,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i16_x0_slt_x1:
> -** cbhgt w1, w0, .L([0-9]+)
> +** (?:cbhgt w1, w0|cbhlt w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -257,7 +257,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i16_x0_sle_x1:
> -** cbhge w1, w0, .L([0-9]+)
> +** (?:cbhge w1, w0|cbhle w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -265,7 +265,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i16_x0_sgt_x1:
> -** cbhlt w1, w0, .L([0-9]+)
> +** (?:cbhlt w1, w0|cbhgt w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> @@ -273,7 +273,7 @@ FAR_BRANCH(u64, 42);
> 
> /*
> ** i16_x0_sge_x1:
> -** cbhle w1, w0, .L([0-9]+)
> +** (?:cbhle w1, w0|cbhge w0, w1), .L([0-9]+)
> ** b not_taken
> ** .L\1:
> ** b taken
> -- 
> 2.43.0
> 

Reply via email to