#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  ! test by:  ./i2c --stdout --tidy test/shiftadd.imp | fgrep "ATOM1 = "|head -1
//     2  %begin

int main(int argc, char **argv) { /*%begin*/
  _imp_initialise(argc, argv);

  //     3    %integer atom1

  int ATOM1;

  //     4
  //     5    atom1 = (atom1-106)>>1+91;     !a,an->v  na,nan->n

  ATOM1 = ((unsigned int)ATOM1 - 106 >> 1) + 91;

  //     6
  //     7    ! This minimal test seems to generate correct C but the same code in test/pass1.imp gives:
  //     8
  //     9    ! //   1226                                          atom1 = (atom1-106)>>1+91;     !a,an->v  na,nan->n
  //    10    ! ATOM1 = (unsigned int)ATOM1 - 106 >> 1 + 91;
  //    11
  //    12    ! reproduce it with: ./i2c --stdout --tidy test/pass1.imp | fgrep "ATOM1 = (unsigned int)ATOM1"
  //    13
  //    14  %endofprogram

  _imp_stop(0);
  return 0;
end_0:;
}