1  /* { dg-options "(-mips16) isa_rev>=1" } */
       2  /* { dg-skip-if "code quality test" { *-*-* } { "-O0" } { "" } } */
       3  
       4  /* { dg-final { scan-assembler-times {slt	\$2,\$5,\$4} 1 } } */
       5  /* { dg-final { scan-assembler-times {sltu	\$2,\$5,\$4} 1 } } */
       6  /* { dg-final { scan-assembler-times {slt	\$5,\$4} 1 } } */
       7  /* { dg-final { scan-assembler-times {sltu	\$5,\$4} 1 } } */
       8  
       9  /* { dg-final { scan-assembler-times {slt	\$2,\$0,\$4} 1 } } */
      10  /* { dg-final { scan-assembler-times {sltu	\$2,\$0,\$4} 1 } } */
      11  
      12  /* { dg-final { scan-assembler-times {slt	\$2,\$4,\$5} 1 } } */
      13  /* { dg-final { scan-assembler-times {sltu	\$2,\$4,\$5} 1 } } */
      14  /* { dg-final { scan-assembler-times {slt	\$4,\$5} 1 } } */
      15  /* { dg-final { scan-assembler-times {sltu	\$4,\$5} 1 } } */
      16  
      17  /* { dg-final { scan-assembler-times {slt	\$2,\$4,23}  1 } } */
      18  /* { dg-final { scan-assembler-times {sltu	\$2,\$4,23}  1 } } */
      19  /* { dg-final { scan-assembler-times {slt	\$4,23}  1 } } */
      20  /* { dg-final { scan-assembler-times {sltu	\$4,23}  1 } } */
      21  
      22  #define TEST(N, LHS, REL, RHS) \
      23    NOMIPS16 int s##N (int a, int b) { return LHS REL RHS; } \
      24    NOMIPS16 int u##N (unsigned a, unsigned b) { return LHS REL RHS; } \
      25    MIPS16 int s##N##_16 (int a, int b) { return LHS REL RHS; } \
      26    MIPS16 int u##N##_16 (unsigned a, unsigned b) { return LHS REL RHS; }
      27  
      28  #define TEST_NO16(N, LHS, REL, RHS) \
      29    NOMIPS16 int s##N (int a, int b) { return LHS REL RHS; } \
      30    NOMIPS16 int u##N (unsigned a, unsigned b) { return LHS REL RHS; }
      31  
      32  TEST (1, a, >, b);
      33  TEST_NO16 (2, a, >=, 1);
      34  TEST (3, a, <, b);
      35  TEST (4, a, <=, 22);