#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:;
}