#include <perms.h>
int _imp_mainep(int _imp_argc, char **_imp_argv) {
  static const int Bits1 = 0b00000000000000000000000000000000;
  int Bits2 = 0b01010101010101010101010101010101;
  static const int Bits3 = 0b00001111000011110000111100001111;
  int Bits4 = 0b11111111111111111111111111111111;
  int Bits5 = 0b10110111100001010011110010101000;
  static const int Bits6 = 0b00100110111100101010100111110111;
  int Lmask = 0b10000000000000000000000000000000;
  int Rmask = 0b00000000000000000000000000000001;
  int Ibits = 0b01010101101010100101010101010101;
  short Sbits = 0b0101010101100101;
  unsigned char Bbits = 0b01010101;
  int I;
  static int Failures = 0;
  void Pass(void) { Printstring(_imp_str_literal("Pass: ")); }
  void Fail(void) {
    Printstring(_imp_str_literal("FAIL: "));
    Failures++;
  }
  Openoutput(2, Cliparam());
  Selectoutput(2);
  Newline();
  Printstring(_imp_str_literal("Test Bit Vector Operations."));
  Newline();
#if 1 /*  !Bits1 */
  Pass();
#else
  Fail();
#endif
  if (Bits2 == 0b01010101010101010101010101010101)
    Pass();
  else
    Fail();
#if 1 /* Bits3==0b00001111000011110000111100001111 */
  Pass();
#else
  Fail();
#endif
  if (Bits4 == 0b11111111111111111111111111111111)
    Pass();
  else
    Fail();
  if ((Bits2 & Bits3) == 0b00000101000001010000010100000101)
    Pass();
  else
    Fail();
  if ((Bits2 | Bits3) == 0b01011111010111110101111101011111)
    Pass();
  else
    Fail();
  if ((Bits2 ^ Bits3) == 0b01011010010110100101101001011010)
    Pass();
  else
    Fail();
  if (~Bits2 == 0b10101010101010101010101010101010)
    Pass();
  else
    Fail();
#if 1 /* Bits3<<4==0b11110000111100001111000011110000 */
  Pass();
#else
  Fail();
#endif
  if ((unsigned)Bits2 >> 4 == 0b00000101010101010101010101010101)
    Pass();
  else
    Fail();
  Newline();
  Printstring(_imp_str_literal("Precedence of Logical Operators."));
  Newline();
  if ((((~Bits6) & ((unsigned)Bits3 >> 6)) ^ Bits5) ==
      (~Bits6 & (unsigned)Bits3 >> 6 ^ Bits5))
    Pass();
  else
    Fail();
  if (((~Bits6) & Bits5) == (~Bits6 & Bits5))
    Pass();
  else
    Fail();
  if ((unsigned)(~Bits5) >> 5 == (unsigned)~Bits5 >> 5)
    Pass();
  else
    Fail();
  if (((~Bits6) | Bits5) == (~Bits6 | Bits5))
    Pass();
  else
    Fail();
  if (((~Bits6) ^ Bits5) == (~Bits6 ^ Bits5))
    Pass();
  else
    Fail();
  if ((Bits6 & ((unsigned)Bits5 >> 4)) == (Bits6 & (unsigned)Bits5 >> 4))
    Pass();
  else
    Fail();
  if ((Bits6 | ((unsigned)Bits5 >> 4)) == (Bits6 | (unsigned)Bits5 >> 4))
    Pass();
  else
    Fail();
  Newline();
  if ((Bits6 ^ ((unsigned)Bits5 >> 4)) == (Bits6 ^ (unsigned)Bits5 >> 4))
    Pass();
  else
    Fail();
  if ((Bits6 & (Bits5 << 4)) == (Bits6 & Bits5 << 4))
    Pass();
  else
    Fail();
  if ((Bits6 | (Bits5 << 4)) == (Bits6 | Bits5 << 4))
    Pass();
  else
    Fail();
  if ((Bits6 ^ (Bits5 << 4)) == (Bits6 ^ Bits5 << 4))
    Pass();
  else
    Fail();
  if ((Bits6 | (Bits5 & Bits3)) == (Bits6 | Bits5 & Bits3))
    Pass();
  else
    Fail();
  if ((Bits6 ^ (Bits5 & Bits3)) == (Bits6 ^ Bits5 & Bits3))
    Pass();
  else
    Fail();
  if (((Bits6 | Bits5) ^ Bits3) == ((Bits6 | Bits5) ^ Bits3))
    Pass();
  else
    Fail();
  if (((Bits6 ^ Bits5) | Bits3) == (Bits6 ^ Bits5 | Bits3))
    Pass();
  else
    Fail();
  Newlines(2);
  Printstring(_imp_str_literal("Assorted Tests on the Logical Operators."));
  Newline();
#if 1 /* (Bits6^Bits3^Bits3)==Bits6 */
  Pass();
#else
  Fail();
#endif
  Printstring(_imp_str_literal("Bits6 !! Bits3 !! Bits3 = Bits6"));
  Newline();
#if 1 /*  ~( ~Bits6)==Bits6 */
  Pass();
#else
  Fail();
#endif
  Printstring(_imp_str_literal("\\(\\Bits6) = Bits6"));
  Newline();
  if (~Bits1 == Bits4)
    Pass();
  else
    Fail();
  Printstring(_imp_str_literal("\\Bits1 = Bits4"));
  Newline();
  if (((unsigned)Rmask >> 10) << 10 == Rmask)
    Fail();
  else
    Pass();
  Printstring(_imp_str_literal("(RMask >> 10) << 10 = RMask"));
  Newline();
  if (((unsigned)Lmask >> 10) << 10 == Lmask)
    Pass();
  else
    Fail();
  Printstring(_imp_str_literal("(LMask >> 10) << 10 = LMask"));
  Newline();
#if 1 /* (unsigned)Bits6>>0==Bits6<<0 */
  Pass();
#else
  Fail();
#endif
  Printstring(_imp_str_literal("Bits6 >> 0 = Bits6 << 0"));
  Newline();
  Printstring(_imp_str_literal("Single bit testing"));
  Newline();
  if (!(Ibits & 1 << 31))
    Pass();
  else
    Fail();
  if (Ibits & 1 << 30)
    Pass();
  else
    Fail();
  if (Ibits & 1 << 24)
    Pass();
  else
    Fail();
  if (Ibits & 1 << 23)
    Pass();
  else
    Fail();
  if (!(Ibits & 1 << 22))
    Pass();
  else
    Fail();
  if (!(Ibits & 1 << 15))
    Pass();
  else
    Fail();
  if (Ibits & 1 << 14)
    Pass();
  else
    Fail();
  if (!(Ibits & 1 << 7))
    Pass();
  else
    Fail();
  if (Ibits & 1 << 6)
    Pass();
  else
    Fail();
  if (!(Ibits & 1 << 1))
    Pass();
  else
    Fail();
  if (Ibits & 1 << 0)
    Pass();
  else
    Fail();
  Newline();
  if (!(Sbits & 1 << 15))
    Pass();
  else
    Fail();
  if (Sbits & 1 << 14)
    Pass();
  else
    Fail();
  if (!(Sbits & 1 << 7))
    Pass();
  else
    Fail();
  if (Sbits & 1 << 6)
    Pass();
  else
    Fail();
  if (Sbits & 1 << 5)
    Pass();
  else
    Fail();
  if (!(Sbits & 1 << 4))
    Pass();
  else
    Fail();
  if (!(Sbits & 1 << 1))
    Pass();
  else
    Fail();
  if (Sbits & 1 << 0)
    Pass();
  else
    Fail();
  if (!(Bbits & 1 << 7))
    Pass();
  else
    Fail();
  if (Bbits & 1 << 6)
    Pass();
  else
    Fail();
  if (!(Bbits & 1 << 1))
    Pass();
  else
    Fail();
  if (Bbits & 1 << 0)
    Pass();
  else
    Fail();
  Newline();
  for (I = 0; I <= 30; I += 2)
    if (16 <= I && I <= 23) {
      if (I == 16) Newline();
      if (!(Ibits & 1 << I))
        Pass();
      else
        Fail();
    } else if (Ibits & 1 << I)
      Pass();
    else
      Fail();
  Newline();
  for (I = 1; I <= 31; I += 2)
    if (17 <= I && I <= 23) {
      if (I == 17) Newline();
      if (Ibits & 1 << I)
        Pass();
      else
        Fail();
    } else if (!(Ibits & 1 << I))
      Pass();
    else
      Fail();
  Newline();
  for (I = 0; I <= 14; I += 2)
    if (I != 4)
      if (Sbits & 1 << I)
        Pass();
      else
        Fail();
    else if (!(Sbits & 1 << I))
      Pass();
    else
      Fail();
  Newline();
  for (I = 1; I <= 15; I += 2)
    if (I != 5)
      if (!(Sbits & 1 << I))
        Pass();
      else
        Fail();
    else if (Sbits & 1 << I)
      Pass();
    else
      Fail();
  Newline();
  for (I = 0; I <= 6; I += 2)
    if (Bbits & 1 << I)
      Pass();
    else
      Fail();
  for (I = 1; I <= 7; I += 2)
    if (!(Bbits & 1 << I))
      Pass();
    else
      Fail();
  Newline();
  Selectoutput(0);
  Write(Failures, 1);
  Printstring(_imp_str_literal(" failure(s)"));
  Newline();
  exit(0);
  return (1);
}
