Merge pull request #2269 from colinleroy/optimize_gt_255

Optimize unsigned int and long > 255
This commit is contained in:
Bob Andrews
2023-11-28 14:36:39 +01:00
committed by GitHub
2 changed files with 98 additions and 5 deletions

View File

@@ -23,6 +23,8 @@ bit bit0 = 0;
#endif
int int0 = 0;
int int1 = 0;
unsigned int uint0 = 0;
unsigned int uint1 = 0;
unsigned char uchar0 = 0;
unsigned char uchar1 = 0;
signed char char0 = 0;
@@ -296,12 +298,95 @@ void int_compare2(void)
c_int_gt_lit2(0xff);
}
void c_uint_gt_lit1(unsigned char expected_result)
{
result = 0;
if(uint0 > 0)
result |= 1;
if(uint0 > 1)
result |= 2;
if(uint0 > 0xff)
result |= 4;
if(uint0 > 0x100)
result |= 8;
if(uint0 > 0x0101)
result |= 0x10;
if(uint0 > 0x01ff)
result |= 0x20;
if(uint0 > 0x0200)
result |= 0x40;
if(uint0 > 0x0201)
result |= 0x80;
if(result != expected_result)
failures=1;
}
void uint_compare1(void)
{
uint0 = 0;
c_uint_gt_lit1(0x00);
uint0 = 1;
c_uint_gt_lit1(0x01);
uint0 = 2;
c_uint_gt_lit1(0x03);
uint0 = 0xfe;
c_uint_gt_lit1(0x03);
uint0 = 0xff;
c_uint_gt_lit1(0x03);
uint0 = 0x100;
c_uint_gt_lit1(0x07);
uint0 = 0x101;
c_uint_gt_lit1(0x0f);
uint0 = 0x102;
c_uint_gt_lit1(0x1f);
uint0 = 0x1fe;
c_uint_gt_lit1(0x1f);
uint0 = 0x1ff;
c_uint_gt_lit1(0x1f);
uint0 = 0x200;
c_uint_gt_lit1(0x3f);
uint0 = 0x201;
c_uint_gt_lit1(0x7f);
uint0 = 0x7f00;
c_uint_gt_lit1(0xff);
/* now check contiguous ranges */
for(uint0 = 2; uint0 != 0xff; uint0++)
c_uint_gt_lit1(0x03);
for(uint0 = 0x202; uint0 != 0xffff; uint0++)
c_uint_gt_lit1(0xff);
}
int
main (void)
{
char_compare();
int_compare1();
int_compare2();
uint_compare1();
success = failures;
done ();