Add rules for lowering `cbranch<mode>4` to CBB<cond>/CBH<cond>/CB<cond> when
CMPBR extension is enabled.

gcc/ChangeLog:

        * config/aarch64/aarch64.md (BRANCH_LEN_P_1Kib): New constant.
        (BRANCH_LEN_N_1Kib): Likewise.
        (cbranch<GPI:mode>4): Emit CMPBR instructions if possible.
        (cbranch<SHORT:mode>4): New expand rule.
        (*aarch64_cb<GPI:mode>): Likewise.
        (*aarch64_cb<SHORT:mode>): Likewise.
        * config/aarch64/iterators.md (cmpbr_suffix): New mode attr.
        * config/aarch64/predicates.md (const_0_to_63_operand): New
        predicate.
        (aarch64_cb_immediate): Likewise.
        (aarch64_cb_operand): Likewise.
        (aarch64_cb_short_operand): Likewise.

gcc/testsuite/ChangeLog:

        * gcc.target/aarch64/cmpbr.c: update tests.
---
 gcc/config/aarch64/aarch64.md            |  87 +++-
 gcc/config/aarch64/iterators.md          |   5 +
 gcc/config/aarch64/predicates.md         |  15 +
 gcc/testsuite/gcc.target/aarch64/cmpbr.c | 598 ++++++++---------------
 4 files changed, 311 insertions(+), 394 deletions(-)

diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index b61e3e5a72f..0b708f8b2f6 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -697,37 +697,60 @@ (define_insn "jump"
 ;; Maximum PC-relative positive/negative displacements for various branching
 ;; instructions.
 (define_constants
   [
     ;; +/- 128MiB.  Used by B, BL.
     (BRANCH_LEN_P_128MiB  134217724)
     (BRANCH_LEN_N_128MiB -134217728)
 
     ;; +/- 1MiB.  Used by B.<cond>, CBZ, CBNZ.
     (BRANCH_LEN_P_1MiB  1048572)
     (BRANCH_LEN_N_1MiB -1048576)
 
     ;; +/- 32KiB.  Used by TBZ, TBNZ.
     (BRANCH_LEN_P_32KiB  32764)
     (BRANCH_LEN_N_32KiB -32768)
+
+    ;; +/- 1KiB.  Used by CBB<cond>, CBH<cond>, CB<cond>.
+    (BRANCH_LEN_P_1Kib  1020)
+    (BRANCH_LEN_N_1Kib -1024)
   ]
 )
 
 ;; -------------------------------------------------------------------
 ;; Conditional jumps
 ;; -------------------------------------------------------------------
 
-(define_expand "cbranch<mode>4"
+(define_expand "cbranch<GPI:mode>4"
   [(set (pc) (if_then_else (match_operator 0 "aarch64_comparison_operator"
                            [(match_operand:GPI 1 "register_operand")
                             (match_operand:GPI 2 "aarch64_plus_operand")])
                           (label_ref (match_operand 3))
                           (pc)))]
   ""
-  "
-  operands[1] = aarch64_gen_compare_reg (GET_CODE (operands[0]), operands[1],
-                                        operands[2]);
-  operands[2] = const0_rtx;
-  "
+  {
+  if (TARGET_CMPBR && aarch64_cb_operand (operands[2], <MODE>mode))
+    {
+      emit_jump_insn (gen_aarch64_cb<mode> (operands[0], operands[1],
+                                           operands[2], operands[3]));
+      DONE;
+    }
+  else
+    {
+      operands[1] = aarch64_gen_compare_reg (GET_CODE (operands[0]),
+                                            operands[1], operands[2]);
+      operands[2] = const0_rtx;
+    }
+  }
+)
+
+(define_expand "cbranch<SHORT:mode>4"
+  [(set (pc) (if_then_else (match_operator 0 "aarch64_comparison_operator"
+                           [(match_operand:SHORT 1 "register_operand")
+                            (match_operand:SHORT 2 
"aarch64_cb_short_operand")])
+                          (label_ref (match_operand 3))
+                          (pc)))]
+  "TARGET_CMPBR"
+  ""
 )
 
 (define_expand "cbranch<mode>4"
@@ -747,13 +770,65 @@ (define_expand "cbranch<mode>4"
 (define_expand "cbranchcc4"
   [(set (pc) (if_then_else (match_operator 0 "aarch64_comparison_operator"
                            [(match_operand 1 "cc_register")
                             (match_operand 2 "const0_operand")])
                           (label_ref (match_operand 3))
                           (pc)))]
   ""
   ""
 )
 
+;; Emit a `CB<cond> (register)` or `CB<cond> (immediate)` instruction.
+(define_insn "aarch64_cb<GPI:mode>"
+  [(set (pc) (if_then_else (match_operator 0 "aarch64_comparison_operator"
+                           [(match_operand:GPI 1 "register_operand" "r")
+                            (match_operand:GPI 2 "aarch64_cb_operand" "ri")])
+                          (label_ref (match_operand 3))
+                          (pc)))]
+  "TARGET_CMPBR"
+  "cb%m0\\t%<w>1, %<w>2, %l3";
+  [(set_attr "type" "branch")
+   (set (attr "length")
+       (if_then_else (and (ge (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_N_1Kib))
+                          (lt (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_P_1Kib)))
+                     (const_int 4)
+                     (const_int 8)))
+   (set (attr "far_branch")
+       (if_then_else (and (ge (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_N_1Kib))
+                          (lt (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_P_1Kib)))
+                     (const_string "no")
+                     (const_string "yes")))]
+)
+
+;; Emit a `CBB<cond> (register)` or `CBH<cond> (register)` instruction.
+(define_insn "aarch64_cb<SHORT:mode>"
+  [(set (pc) (if_then_else (match_operator 0 "aarch64_comparison_operator"
+                           [(match_operand:SHORT 1 "register_operand" "r")
+                            (match_operand:SHORT 2 "aarch64_cb_short_operand" 
"rZ")])
+                          (label_ref (match_operand 3))
+                          (pc)))]
+  "TARGET_CMPBR"
+  "cb<SHORT:cmpbr_suffix>%m0\\t%<w>1, %<w>2, %l3"
+  [(set_attr "type" "branch")
+   (set (attr "length")
+       (if_then_else (and (ge (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_N_1Kib))
+                          (lt (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_P_1Kib)))
+                     (const_int 4)
+                     (const_int 8)))
+   (set (attr "far_branch")
+       (if_then_else (and (ge (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_N_1Kib))
+                          (lt (minus (match_dup 3) (pc))
+                              (const_int BRANCH_LEN_P_1Kib)))
+                     (const_string "no")
+                     (const_string "yes")))]
+)
+
 ;; Emit `B<cond>`, assuming that the condition is already in the CC register.
 (define_insn "aarch64_bcond"
   [(set (pc) (if_then_else (match_operator 0 "aarch64_comparison_operator"
diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md
index 146453b0516..5c4db3fc109 100644
--- a/gcc/config/aarch64/iterators.md
+++ b/gcc/config/aarch64/iterators.md
@@ -2879,6 +2879,11 @@ (define_code_attr cmp_op [(lt "lt")
                          (geu "hs")
                          (gtu "hi")])
 
+(define_mode_attr cmpbr_suffix [(QI "b")
+                               (HI "h")
+                               (SI "")
+                               (DI "")])
+
 (define_code_attr fix_trunc_optab [(fix "fix_trunc")
                                   (unsigned_fix "fixuns_trunc")])
 
diff --git a/gcc/config/aarch64/predicates.md b/gcc/config/aarch64/predicates.md
index 1ab1c696c62..7dffe7ab110 100644
--- a/gcc/config/aarch64/predicates.md
+++ b/gcc/config/aarch64/predicates.md
@@ -50,6 +50,10 @@ (define_predicate "const_0_to_7_operand"
   (and (match_code "const_int")
        (match_test "IN_RANGE (INTVAL (op), 0, 7)")))
 
+(define_predicate "const_0_to_63_operand"
+  (and (match_code "const_int")
+       (match_test "IN_RANGE (INTVAL (op), 0, 63)")))
+
 (define_predicate "const_0_to_4_step_4_operand"
   (and (match_code "const_int")
        (match_test "IN_RANGE (INTVAL (op), 0, 4)")
@@ -130,6 +134,17 @@ (define_predicate "aarch64_reg_or_xor_imm"
         (and (match_code "const_vector")
              (match_test "aarch64_simd_valid_xor_imm (op)"))))
 
+(define_predicate "aarch64_cb_immediate"
+  (match_operand 0 "const_0_to_63_operand"))
+
+(define_predicate "aarch64_cb_operand"
+  (ior (match_operand 0 "register_operand")
+       (match_operand 0 "aarch64_cb_immediate")))
+
+(define_predicate "aarch64_cb_short_operand"
+  (ior (match_operand 0 "register_operand")
+       (match_operand 0 "const0_operand")))
+
 (define_predicate "aarch64_fp_compare_operand"
   (ior (match_operand 0 "register_operand")
        (and (match_code "const_double")
diff --git a/gcc/testsuite/gcc.target/aarch64/cmpbr.c 
b/gcc/testsuite/gcc.target/aarch64/cmpbr.c
index 8534283bc26..f97b8026efe 100644
--- a/gcc/testsuite/gcc.target/aarch64/cmpbr.c
+++ b/gcc/testsuite/gcc.target/aarch64/cmpbr.c
@@ -85,1575 +85,1397 @@ COMPARE_ALL(u32, i32, 4098);
 COMPARE_ALL(u64, i64, 4098);
 
 /*
 ** u8_x0_eq_x1:
-**     and     w1, w1, 255
-**     cmp     w1, w0, uxtb
-**     beq     .L4
+**     cbbeq   w1, w0, .L4
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u8_x0_ne_x1:
-**     and     w1, w1, 255
-**     cmp     w1, w0, uxtb
-**     beq     .L6
+**     cbbeq   w1, w0, .L6
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ult_x1:
-**     and     w1, w1, 255
-**     cmp     w1, w0, uxtb
-**     bls     .L8
+**     cbbls   w1, w0, .L8
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ule_x1:
-**     and     w1, w1, 255
-**     cmp     w1, w0, uxtb
-**     bcc     .L10
+**     cbbcc   w1, w0, .L10
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ugt_x1:
-**     and     w1, w1, 255
-**     cmp     w1, w0, uxtb
-**     bcs     .L12
+**     cbbcs   w1, w0, .L12
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_uge_x1:
-**     and     w1, w1, 255
-**     cmp     w1, w0, uxtb
-**     bhi     .L14
+**     cbbhi   w1, w0, .L14
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_slt_x1:
-**     sxtb    w1, w1
-**     cmp     w1, w0, sxtb
-**     ble     .L16
+**     cbble   w1, w0, .L16
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sle_x1:
-**     sxtb    w1, w1
-**     cmp     w1, w0, sxtb
-**     blt     .L18
+**     cbblt   w1, w0, .L18
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sgt_x1:
-**     sxtb    w1, w1
-**     cmp     w1, w0, sxtb
-**     bge     .L20
+**     cbbge   w1, w0, .L20
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sge_x1:
-**     sxtb    w1, w1
-**     cmp     w1, w0, sxtb
-**     bgt     .L22
+**     cbbgt   w1, w0, .L22
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_eq_x1:
-**     and     w1, w1, 65535
-**     cmp     w1, w0, uxth
-**     beq     .L25
+**     cbheq   w1, w0, .L25
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u16_x0_ne_x1:
-**     and     w1, w1, 65535
-**     cmp     w1, w0, uxth
-**     beq     .L27
+**     cbheq   w1, w0, .L27
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ult_x1:
-**     and     w1, w1, 65535
-**     cmp     w1, w0, uxth
-**     bls     .L29
+**     cbhls   w1, w0, .L29
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ule_x1:
-**     and     w1, w1, 65535
-**     cmp     w1, w0, uxth
-**     bcc     .L31
+**     cbhcc   w1, w0, .L31
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ugt_x1:
-**     and     w1, w1, 65535
-**     cmp     w1, w0, uxth
-**     bcs     .L33
+**     cbhcs   w1, w0, .L33
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_uge_x1:
-**     and     w1, w1, 65535
-**     cmp     w1, w0, uxth
-**     bhi     .L35
+**     cbhhi   w1, w0, .L35
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_slt_x1:
-**     sxth    w1, w1
-**     cmp     w1, w0, sxth
-**     ble     .L37
+**     cbhle   w1, w0, .L37
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sle_x1:
-**     sxth    w1, w1
-**     cmp     w1, w0, sxth
-**     blt     .L39
+**     cbhlt   w1, w0, .L39
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sgt_x1:
-**     sxth    w1, w1
-**     cmp     w1, w0, sxth
-**     bge     .L41
+**     cbhge   w1, w0, .L41
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sge_x1:
-**     sxth    w1, w1
-**     cmp     w1, w0, sxth
-**     bgt     .L43
+**     cbhgt   w1, w0, .L43
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_eq_x1:
-**     cmp     w0, w1
-**     beq     .L46
+**     cbeq    w0, w1, .L46
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u32_x0_ne_x1:
-**     cmp     w0, w1
-**     beq     .L48
+**     cbeq    w0, w1, .L48
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ult_x1:
-**     cmp     w0, w1
-**     bcs     .L50
+**     cbcs    w0, w1, .L50
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ule_x1:
-**     cmp     w0, w1
-**     bhi     .L52
+**     cbhi    w0, w1, .L52
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ugt_x1:
-**     cmp     w0, w1
-**     bls     .L54
+**     cbls    w0, w1, .L54
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_uge_x1:
-**     cmp     w0, w1
-**     bcc     .L56
+**     cbcc    w0, w1, .L56
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_slt_x1:
-**     cmp     w0, w1
-**     bge     .L58
+**     cbge    w0, w1, .L58
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sle_x1:
-**     cmp     w0, w1
-**     bgt     .L60
+**     cbgt    w0, w1, .L60
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sgt_x1:
-**     cmp     w0, w1
-**     ble     .L62
+**     cble    w0, w1, .L62
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sge_x1:
-**     cmp     w0, w1
-**     blt     .L64
+**     cblt    w0, w1, .L64
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_eq_x1:
-**     cmp     x0, x1
-**     beq     .L67
+**     cbeq    x0, x1, .L67
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u64_x0_ne_x1:
-**     cmp     x0, x1
-**     beq     .L69
+**     cbeq    x0, x1, .L69
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ult_x1:
-**     cmp     x0, x1
-**     bcs     .L71
+**     cbcs    x0, x1, .L71
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ule_x1:
-**     cmp     x0, x1
-**     bhi     .L73
+**     cbhi    x0, x1, .L73
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ugt_x1:
-**     cmp     x0, x1
-**     bls     .L75
+**     cbls    x0, x1, .L75
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_uge_x1:
-**     cmp     x0, x1
-**     bcc     .L77
+**     cbcc    x0, x1, .L77
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_slt_x1:
-**     cmp     x0, x1
-**     bge     .L79
+**     cbge    x0, x1, .L79
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sle_x1:
-**     cmp     x0, x1
-**     bgt     .L81
+**     cbgt    x0, x1, .L81
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sgt_x1:
-**     cmp     x0, x1
-**     ble     .L83
+**     cble    x0, x1, .L83
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sge_x1:
-**     cmp     x0, x1
-**     blt     .L85
+**     cblt    x0, x1, .L85
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_eq_42:
-**     cmp     w0, 42
-**     beq     .L88
+**     cbeq    w0, 42, .L88
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u32_x0_ne_42:
-**     cmp     w0, 42
-**     beq     .L90
+**     cbeq    w0, 42, .L90
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ult_42:
-**     cmp     w0, 41
-**     bhi     .L92
+**     cbhi    w0, 41, .L92
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ule_42:
-**     cmp     w0, 42
-**     bhi     .L94
+**     cbhi    w0, 42, .L94
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ugt_42:
-**     cmp     w0, 42
-**     bls     .L96
+**     cbls    w0, 42, .L96
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_uge_42:
-**     cmp     w0, 41
-**     bls     .L98
+**     cbls    w0, 41, .L98
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_slt_42:
-**     cmp     w0, 41
-**     bgt     .L100
+**     cbgt    w0, 41, .L100
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sle_42:
-**     cmp     w0, 42
-**     bgt     .L102
+**     cbgt    w0, 42, .L102
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sgt_42:
-**     cmp     w0, 42
-**     ble     .L104
+**     cble    w0, 42, .L104
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sge_42:
-**     cmp     w0, 41
-**     ble     .L106
+**     cble    w0, 41, .L106
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_eq_42:
-**     cmp     x0, 42
-**     beq     .L109
+**     cbeq    x0, 42, .L109
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u64_x0_ne_42:
-**     cmp     x0, 42
-**     beq     .L111
+**     cbeq    x0, 42, .L111
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ult_42:
-**     cmp     x0, 41
-**     bhi     .L113
+**     cbhi    x0, 41, .L113
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ule_42:
-**     cmp     x0, 42
-**     bhi     .L115
+**     cbhi    x0, 42, .L115
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ugt_42:
-**     cmp     x0, 42
-**     bls     .L117
+**     cbls    x0, 42, .L117
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_uge_42:
-**     cmp     x0, 41
-**     bls     .L119
+**     cbls    x0, 41, .L119
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_slt_42:
-**     cmp     x0, 41
-**     bgt     .L121
+**     cbgt    x0, 41, .L121
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sle_42:
-**     cmp     x0, 42
-**     bgt     .L123
+**     cbgt    x0, 42, .L123
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sgt_42:
-**     cmp     x0, 42
-**     ble     .L125
+**     cble    x0, 42, .L125
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sge_42:
-**     cmp     x0, 41
-**     ble     .L127
+**     cble    x0, 41, .L127
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_eq_0:
-**     tst     w0, 255
-**     bne     .L129
+**     cbbne   w0, wzr, .L129
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ne_0:
-**     tst     w0, 255
-**     beq     .L131
+**     cbbeq   w0, wzr, .L131
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ult_0:
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ule_0:
-**     tst     w0, 255
-**     bne     .L134
+**     cbbne   w0, wzr, .L134
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ugt_0:
-**     tst     w0, 255
-**     beq     .L136
+**     cbbeq   w0, wzr, .L136
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_uge_0:
 **     b       taken
 */
 
 /*
 ** i8_x0_slt_0:
-**     tbnz    w0, 7, .L140
+**     cbblt   w0, wzr, .L140
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i8_x0_sle_0:
-**     sxtb    w0, w0
-**     cmp     w0, 0
-**     ble     .L143
+**     cbble   w0, wzr, .L143
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i8_x0_sgt_0:
-**     sxtb    w0, w0
-**     cmp     w0, 0
-**     ble     .L145
+**     cbble   w0, wzr, .L145
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sge_0:
-**     tbnz    w0, 7, .L147
+**     cbblt   w0, wzr, .L147
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_eq_0:
-**     tst     w0, 65535
-**     bne     .L149
+**     cbhne   w0, wzr, .L149
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ne_0:
-**     tst     w0, 65535
-**     beq     .L151
+**     cbheq   w0, wzr, .L151
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ult_0:
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ule_0:
-**     tst     w0, 65535
-**     bne     .L154
+**     cbhne   w0, wzr, .L154
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ugt_0:
-**     tst     w0, 65535
-**     beq     .L156
+**     cbheq   w0, wzr, .L156
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_uge_0:
 **     b       taken
 */
 
 /*
 ** i16_x0_slt_0:
-**     tbnz    w0, 15, .L160
+**     cbhlt   w0, wzr, .L160
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i16_x0_sle_0:
-**     sxth    w0, w0
-**     cmp     w0, 0
-**     ble     .L163
+**     cbhle   w0, wzr, .L163
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i16_x0_sgt_0:
-**     sxth    w0, w0
-**     cmp     w0, 0
-**     ble     .L165
+**     cbhle   w0, wzr, .L165
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sge_0:
-**     tbnz    w0, 15, .L167
+**     cbhlt   w0, wzr, .L167
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_eq_0:
-**     cbnz    w0, .L169
+**     cbne    w0, wzr, .L169
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ne_0:
-**     cbz     w0, .L171
+**     cbeq    w0, wzr, .L171
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ult_0:
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ule_0:
-**     cbnz    w0, .L174
+**     cbne    w0, wzr, .L174
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ugt_0:
-**     cbz     w0, .L176
+**     cbeq    w0, wzr, .L176
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_uge_0:
 **     b       taken
 */
 
 /*
 ** i32_x0_slt_0:
-**     tbnz    w0, #31, .L180
+**     cblt    w0, wzr, .L180
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i32_x0_sle_0:
-**     cmp     w0, 0
-**     ble     .L183
+**     cble    w0, wzr, .L183
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i32_x0_sgt_0:
-**     cmp     w0, 0
-**     ble     .L185
+**     cble    w0, wzr, .L185
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sge_0:
-**     tbnz    w0, #31, .L187
+**     cblt    w0, wzr, .L187
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_eq_0:
-**     cbnz    x0, .L189
+**     cbne    x0, xzr, .L189
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ne_0:
-**     cbz     x0, .L191
+**     cbeq    x0, xzr, .L191
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ult_0:
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ule_0:
-**     cbnz    x0, .L194
+**     cbne    x0, xzr, .L194
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ugt_0:
-**     cbz     x0, .L196
+**     cbeq    x0, xzr, .L196
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_uge_0:
 **     b       taken
 */
 
 /*
 ** i64_x0_slt_0:
-**     tbnz    x0, #63, .L200
+**     cblt    x0, xzr, .L200
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i64_x0_sle_0:
-**     cmp     x0, 0
-**     ble     .L203
+**     cble    x0, xzr, .L203
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** i64_x0_sgt_0:
-**     cmp     x0, 0
-**     ble     .L205
+**     cble    x0, xzr, .L205
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sge_0:
-**     tbnz    x0, #63, .L207
+**     cblt    x0, xzr, .L207
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_eq_42:
-**     and     w0, w0, 255
-**     cmp     w0, 42
-**     beq     .L210
+**     mov     w1, 42
+**     cbbeq   w0, w1, .L210
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u8_x0_ne_42:
-**     and     w0, w0, 255
-**     cmp     w0, 42
-**     beq     .L212
+**     mov     w1, 42
+**     cbbeq   w0, w1, .L212
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ult_42:
-**     and     w0, w0, 255
-**     cmp     w0, 41
-**     bhi     .L214
+**     mov     w1, 41
+**     cbbhi   w0, w1, .L214
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ule_42:
-**     and     w0, w0, 255
-**     cmp     w0, 42
-**     bhi     .L216
+**     mov     w1, 42
+**     cbbhi   w0, w1, .L216
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ugt_42:
-**     and     w0, w0, 255
-**     cmp     w0, 42
-**     bls     .L218
+**     mov     w1, 42
+**     cbbls   w0, w1, .L218
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_uge_42:
-**     and     w0, w0, 255
-**     cmp     w0, 41
-**     bls     .L220
+**     mov     w1, 41
+**     cbbls   w0, w1, .L220
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_slt_42:
-**     sxtb    w0, w0
-**     cmp     w0, 41
-**     bgt     .L222
+**     mov     w1, 41
+**     cbbgt   w0, w1, .L222
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sle_42:
-**     sxtb    w0, w0
-**     cmp     w0, 42
-**     bgt     .L224
+**     mov     w1, 42
+**     cbbgt   w0, w1, .L224
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sgt_42:
-**     sxtb    w0, w0
-**     cmp     w0, 42
-**     ble     .L226
+**     mov     w1, 42
+**     cbble   w0, w1, .L226
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sge_42:
-**     sxtb    w0, w0
-**     cmp     w0, 41
-**     ble     .L228
+**     mov     w1, 41
+**     cbble   w0, w1, .L228
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_eq_42:
-**     and     w0, w0, 65535
-**     cmp     w0, 42
-**     beq     .L231
+**     mov     w1, 42
+**     cbheq   w0, w1, .L231
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u16_x0_ne_42:
-**     and     w0, w0, 65535
-**     cmp     w0, 42
-**     beq     .L233
+**     mov     w1, 42
+**     cbheq   w0, w1, .L233
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ult_42:
-**     and     w0, w0, 65535
-**     cmp     w0, 41
-**     bhi     .L235
+**     mov     w1, 41
+**     cbhhi   w0, w1, .L235
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ule_42:
-**     and     w0, w0, 65535
-**     cmp     w0, 42
-**     bhi     .L237
+**     mov     w1, 42
+**     cbhhi   w0, w1, .L237
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ugt_42:
-**     and     w0, w0, 65535
-**     cmp     w0, 42
-**     bls     .L239
+**     mov     w1, 42
+**     cbhls   w0, w1, .L239
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_uge_42:
-**     and     w0, w0, 65535
-**     cmp     w0, 41
-**     bls     .L241
+**     mov     w1, 41
+**     cbhls   w0, w1, .L241
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_slt_42:
-**     sxth    w0, w0
-**     cmp     w0, 41
-**     bgt     .L243
+**     mov     w1, 41
+**     cbhgt   w0, w1, .L243
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sle_42:
-**     sxth    w0, w0
-**     cmp     w0, 42
-**     bgt     .L245
+**     mov     w1, 42
+**     cbhgt   w0, w1, .L245
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sgt_42:
-**     sxth    w0, w0
-**     cmp     w0, 42
-**     ble     .L247
+**     mov     w1, 42
+**     cbhle   w0, w1, .L247
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sge_42:
-**     sxth    w0, w0
-**     cmp     w0, 41
-**     ble     .L249
+**     mov     w1, 41
+**     cbhle   w0, w1, .L249
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_eq_64:
-**     and     w0, w0, 255
-**     cmp     w0, 64
-**     beq     .L252
+**     mov     w1, 64
+**     cbbeq   w0, w1, .L252
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u8_x0_ne_64:
-**     and     w0, w0, 255
-**     cmp     w0, 64
-**     beq     .L254
+**     mov     w1, 64
+**     cbbeq   w0, w1, .L254
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ult_64:
-**     and     w0, w0, 255
-**     cmp     w0, 63
-**     bhi     .L256
+**     mov     w1, 63
+**     cbbhi   w0, w1, .L256
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ule_64:
-**     and     w0, w0, 255
-**     cmp     w0, 64
-**     bhi     .L258
+**     mov     w1, 64
+**     cbbhi   w0, w1, .L258
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_ugt_64:
-**     and     w0, w0, 255
-**     cmp     w0, 64
-**     bls     .L260
+**     mov     w1, 64
+**     cbbls   w0, w1, .L260
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u8_x0_uge_64:
-**     and     w0, w0, 255
-**     cmp     w0, 63
-**     bls     .L262
+**     mov     w1, 63
+**     cbbls   w0, w1, .L262
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_slt_64:
-**     sxtb    w0, w0
-**     cmp     w0, 63
-**     bgt     .L264
+**     mov     w1, 63
+**     cbbgt   w0, w1, .L264
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sle_64:
-**     sxtb    w0, w0
-**     cmp     w0, 64
-**     bgt     .L266
+**     mov     w1, 64
+**     cbbgt   w0, w1, .L266
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sgt_64:
-**     sxtb    w0, w0
-**     cmp     w0, 64
-**     ble     .L268
+**     mov     w1, 64
+**     cbble   w0, w1, .L268
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i8_x0_sge_64:
-**     sxtb    w0, w0
-**     cmp     w0, 63
-**     ble     .L270
+**     mov     w1, 63
+**     cbble   w0, w1, .L270
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_eq_64:
-**     and     w0, w0, 65535
-**     cmp     w0, 64
-**     beq     .L273
+**     mov     w1, 64
+**     cbheq   w0, w1, .L273
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u16_x0_ne_64:
-**     and     w0, w0, 65535
-**     cmp     w0, 64
-**     beq     .L275
+**     mov     w1, 64
+**     cbheq   w0, w1, .L275
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ult_64:
-**     and     w0, w0, 65535
-**     cmp     w0, 63
-**     bhi     .L277
+**     mov     w1, 63
+**     cbhhi   w0, w1, .L277
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ule_64:
-**     and     w0, w0, 65535
-**     cmp     w0, 64
-**     bhi     .L279
+**     mov     w1, 64
+**     cbhhi   w0, w1, .L279
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ugt_64:
-**     and     w0, w0, 65535
-**     cmp     w0, 64
-**     bls     .L281
+**     mov     w1, 64
+**     cbhls   w0, w1, .L281
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_uge_64:
-**     and     w0, w0, 65535
-**     cmp     w0, 63
-**     bls     .L283
+**     mov     w1, 63
+**     cbhls   w0, w1, .L283
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_slt_64:
-**     sxth    w0, w0
-**     cmp     w0, 63
-**     bgt     .L285
+**     mov     w1, 63
+**     cbhgt   w0, w1, .L285
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sle_64:
-**     sxth    w0, w0
-**     cmp     w0, 64
-**     bgt     .L287
+**     mov     w1, 64
+**     cbhgt   w0, w1, .L287
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sgt_64:
-**     sxth    w0, w0
-**     cmp     w0, 64
-**     ble     .L289
+**     mov     w1, 64
+**     cbhle   w0, w1, .L289
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sge_64:
-**     sxth    w0, w0
-**     cmp     w0, 63
-**     ble     .L291
+**     mov     w1, 63
+**     cbhle   w0, w1, .L291
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_eq_64:
 **     cmp     w0, 64
 **     beq     .L294
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u32_x0_ne_64:
 **     cmp     w0, 64
 **     beq     .L296
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ult_64:
-**     cmp     w0, 63
-**     bhi     .L298
+**     cbhi    w0, 63, .L298
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ule_64:
 **     cmp     w0, 64
 **     bhi     .L300
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ugt_64:
 **     cmp     w0, 64
 **     bls     .L302
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_uge_64:
-**     cmp     w0, 63
-**     bls     .L304
+**     cbls    w0, 63, .L304
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_slt_64:
-**     cmp     w0, 63
-**     bgt     .L306
+**     cbgt    w0, 63, .L306
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sle_64:
 **     cmp     w0, 64
 **     bgt     .L308
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sgt_64:
 **     cmp     w0, 64
 **     ble     .L310
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sge_64:
-**     cmp     w0, 63
-**     ble     .L312
+**     cble    w0, 63, .L312
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_eq_64:
 **     cmp     x0, 64
 **     beq     .L315
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u64_x0_ne_64:
 **     cmp     x0, 64
 **     beq     .L317
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ult_64:
-**     cmp     x0, 63
-**     bhi     .L319
+**     cbhi    x0, 63, .L319
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ule_64:
 **     cmp     x0, 64
 **     bhi     .L321
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ugt_64:
 **     cmp     x0, 64
 **     bls     .L323
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_uge_64:
-**     cmp     x0, 63
-**     bls     .L325
+**     cbls    x0, 63, .L325
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_slt_64:
-**     cmp     x0, 63
-**     bgt     .L327
+**     cbgt    x0, 63, .L327
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sle_64:
 **     cmp     x0, 64
 **     bgt     .L329
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sgt_64:
 **     cmp     x0, 64
 **     ble     .L331
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sge_64:
-**     cmp     x0, 63
-**     ble     .L333
+**     cble    x0, 63, .L333
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_eq_4098:
 **     mov     w1, 4098
-**     cmp     w1, w0, uxth
-**     beq     .L336
+**     cbheq   w0, w1, .L336
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u16_x0_ne_4098:
 **     mov     w1, 4098
-**     cmp     w1, w0, uxth
-**     beq     .L338
+**     cbheq   w0, w1, .L338
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ult_4098:
 **     mov     w1, 4097
-**     cmp     w1, w0, uxth
-**     bcc     .L340
+**     cbhhi   w0, w1, .L340
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ule_4098:
 **     mov     w1, 4098
-**     cmp     w1, w0, uxth
-**     bcc     .L342
+**     cbhhi   w0, w1, .L342
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_ugt_4098:
 **     mov     w1, 4098
-**     cmp     w1, w0, uxth
-**     bcs     .L344
+**     cbhls   w0, w1, .L344
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u16_x0_uge_4098:
 **     mov     w1, 4097
-**     cmp     w1, w0, uxth
-**     bcs     .L346
+**     cbhls   w0, w1, .L346
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_slt_4098:
 **     mov     w1, 4097
-**     cmp     w1, w0, sxth
-**     blt     .L348
+**     cbhgt   w0, w1, .L348
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sle_4098:
 **     mov     w1, 4098
-**     cmp     w1, w0, sxth
-**     blt     .L350
+**     cbhgt   w0, w1, .L350
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sgt_4098:
 **     mov     w1, 4098
-**     cmp     w1, w0, sxth
-**     bge     .L352
+**     cbhle   w0, w1, .L352
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i16_x0_sge_4098:
 **     mov     w1, 4097
-**     cmp     w1, w0, sxth
-**     bge     .L354
+**     cbhle   w0, w1, .L354
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_eq_4098:
 **     mov     w1, 4098
-**     cmp     w0, w1
-**     beq     .L357
+**     cbeq    w0, w1, .L357
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u32_x0_ne_4098:
 **     mov     w1, 4098
-**     cmp     w0, w1
-**     beq     .L359
+**     cbeq    w0, w1, .L359
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ult_4098:
 **     mov     w1, 4097
-**     cmp     w0, w1
-**     bhi     .L361
+**     cbhi    w0, w1, .L361
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ule_4098:
 **     mov     w1, 4098
-**     cmp     w0, w1
-**     bhi     .L363
+**     cbhi    w0, w1, .L363
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_ugt_4098:
 **     mov     w1, 4098
-**     cmp     w0, w1
-**     bls     .L365
+**     cbls    w0, w1, .L365
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u32_x0_uge_4098:
 **     mov     w1, 4097
-**     cmp     w0, w1
-**     bls     .L367
+**     cbls    w0, w1, .L367
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_slt_4098:
 **     mov     w1, 4097
-**     cmp     w0, w1
-**     bgt     .L369
+**     cbgt    w0, w1, .L369
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sle_4098:
 **     mov     w1, 4098
-**     cmp     w0, w1
-**     bgt     .L371
+**     cbgt    w0, w1, .L371
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sgt_4098:
 **     mov     w1, 4098
-**     cmp     w0, w1
-**     ble     .L373
+**     cble    w0, w1, .L373
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i32_x0_sge_4098:
 **     mov     w1, 4097
-**     cmp     w0, w1
-**     ble     .L375
+**     cble    w0, w1, .L375
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_eq_4098:
 **     mov     x1, 4098
-**     cmp     x0, x1
-**     beq     .L378
+**     cbeq    x0, x1, .L378
 **     b       not_taken
 **     b       taken
 */
 
 /*
 ** u64_x0_ne_4098:
 **     mov     x1, 4098
-**     cmp     x0, x1
-**     beq     .L380
+**     cbeq    x0, x1, .L380
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ult_4098:
 **     mov     x1, 4097
-**     cmp     x0, x1
-**     bhi     .L382
+**     cbhi    x0, x1, .L382
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ule_4098:
 **     mov     x1, 4098
-**     cmp     x0, x1
-**     bhi     .L384
+**     cbhi    x0, x1, .L384
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_ugt_4098:
 **     mov     x1, 4098
-**     cmp     x0, x1
-**     bls     .L386
+**     cbls    x0, x1, .L386
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** u64_x0_uge_4098:
 **     mov     x1, 4097
-**     cmp     x0, x1
-**     bls     .L388
+**     cbls    x0, x1, .L388
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_slt_4098:
 **     mov     x1, 4097
-**     cmp     x0, x1
-**     bgt     .L390
+**     cbgt    x0, x1, .L390
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sle_4098:
 **     mov     x1, 4098
-**     cmp     x0, x1
-**     bgt     .L392
+**     cbgt    x0, x1, .L392
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sgt_4098:
 **     mov     x1, 4098
-**     cmp     x0, x1
-**     ble     .L394
+**     cble    x0, x1, .L394
 **     b       taken
 **     b       not_taken
 */
 
 /*
 ** i64_x0_sge_4098:
 **     mov     x1, 4097
-**     cmp     x0, x1
-**     ble     .L396
+**     cble    x0, x1, .L396
 **     b       taken
 **     b       not_taken
 */
-- 
2.45.2


Reply via email to