| /* On H8/300 port, NOTICE_UPDATE_CC had a bug that causes the final |
| pass to remove test insns that should be kept. */ |
| |
| unsigned short |
| test1 (unsigned short w) |
| { |
| if ((w & 0xff00) == 0) |
| { |
| if (w == 0) |
| w = 2; |
| } |
| return w; |
| } |
| |
| unsigned long |
| test2 (unsigned long w) |
| { |
| if ((w & 0xffff0000) == 0) |
| { |
| if (w == 0) |
| w = 2; |
| } |
| return w; |
| } |
| |
| int |
| test3 (unsigned short a) |
| { |
| if (a & 1) |
| return 1; |
| else if (a) |
| return 1; |
| else |
| return 0; |
| } |
| |
| int |
| main () |
| { |
| if (test1 (1) != 1) |
| abort (); |
| |
| if (test2 (1) != 1) |
| abort (); |
| |
| if (test3 (2) != 1) |
| abort (); |
| |
| exit (0); |
| } |