+ /* div icode: operandOperation() */
+ s = -12;
+ ASSERT(s / (stype) -3 == (stype) 4);
+ s = -12;
+ ASSERT(s / (stype) 3 == (stype) -4);
+ s = 12;
+ ASSERT(s / (stype) -3 == (stype) -4);
+
+ uc = -12;
+ ASSERT(uc / (signed char ) -3 == (sizeof(int) == 2 ? 0xffaf : 0xffffffaf));
+ us = -12;
+ ASSERT(us / (signed short) -3 == (sizeof(int) == 2 ? 0 : 0xffffaaaf));
+ ul = -12;
+ ASSERT(ul / (signed LONG ) -3 == 0);
+ u = -12;
+ ASSERT(u / (stype) 3 == (stype) 0x55555551);
+ uc = 12;
+ ASSERT(uc / (signed char ) -3 == -4);
+ us = 12;
+ ASSERT(us / (signed short) -3 == (sizeof(int) == 2 ? 0 : 0xfffffffc));
+ ul = 12;
+ ASSERT(ul / (signed LONG ) -3 == 0);
+
+ s = -12;
+ ASSERT(s / (utype) -3 == 0);
+ sc = -12;
+ ASSERT(sc / (unsigned char ) 3 == -4);
+ ss = -12;
+ ASSERT(ss / (unsigned short) 3 == (sizeof(int) == 2 ? 0x5551 : -4));
+ sl = -12;
+ ASSERT(sl / (unsigned LONG ) 3 == 0x55555551);
+ s = 12;
+ ASSERT(s / (utype) -3 == 0);
+
+
+ /* mod ast: valMod() */
+ /* -11 : 0xfff5 */
+ /* -17 : 0xffef */
+ ASSERT((stype) -17 % (stype) -11 == (stype) -6);
+ ASSERT((stype) -17 % (stype) 11 == (stype) -6);
+ ASSERT((stype) 17 % (stype) -11 == (stype) 6);
+ ASSERT((unsigned char ) -17 % (signed char ) -11 == 8);
+ ASSERT((unsigned short) -17 % (signed short) -11 == (sizeof(int) == 2 ? -17 : 3));
+ ASSERT((unsigned LONG ) -17 % (signed LONG ) -11 == -17);
+ ASSERT((unsigned char ) -17 % (signed char ) 11 == 8);
+ ASSERT((unsigned short) -17 % (signed short) 11 == 3);
+ ASSERT((unsigned LONG ) -17 % (signed LONG ) 11 == 9);
+ ASSERT((unsigned char ) 17 % (signed char ) -11 == 6);
+ ASSERT((unsigned short) 17 % (signed short) -11 == (sizeof(int) == 2 ? 17 : 6));
+ ASSERT((unsigned LONG ) 17 % (signed LONG ) -11 == 17);