1 #define F1(a,b) ((long)(a) - ((long)(b) * -3UL))
2 #define F2(a,b) ((long)(a) - ((long)(b) * 2UL))
3 #define F3(a,b) ((long)(a) - ((long)(b) * 5UL))
4 #define F(a,b,c,d) ((long)(a) - (8UL * ((long)(b) - (-4UL * ((long)(c) - (-3UL * (long)(d)))))))
7 /* based on mrstrcmp_14
8 in our language the lea opts are only possible for -1, -2, -4 and -8
9 this testcase tests other constants and other op order in mul
12 long f1(long, long, long);
13 long f2(long, long, long);
14 long f3(long, long, long);
15 long f(long, long, long, long, long);
17 RET(f1(0, 3, 20) == F1( 3, 20) &&
18 f1(0, -100, 80) == F1(-100, 80) &&
19 f1(0, 50, -9) == F1( 50, -9) &&
20 f1(0, -77, -50) == F1( -77, -50) &&
22 f2(0, 3, 20) == F2( 3, 20) &&
23 f2(0, -100, 80) == F2(-100, 80) &&
24 f2(0, 50, -9) == F2( 50, -9) &&
25 f2(0, -77, -50) == F2( -77, -50) &&
27 f3(0, 3, 20) == F3( 3, 20) &&
28 f3(0, -100, 80) == F3(-100, 80) &&
29 f3(0, 50, -9) == F3( 50, -9) &&
30 f3(0, -77, -50) == F3( -77, -50) &&
32 f(0, 10, 20, 30, 40) == F( 10, 20, 30, 40) &&
33 f(0, -10, 20, -30, 40) == F(-10, 20, -30, 40) &&
34 f(0, 10, -20, 30, -40) == F( 10, -20, 30, -40) &&
35 f(0, -10, -20, -30, -40) == F(-10, -20, -30, -40) &&
37 f1(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
38 F1(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
39 f2(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
40 F2(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
41 f3(0, 0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) ==
42 F3(0x7FFFFFFFFFFFFFFFUL, 0x7FFFFFFFFFFFFFFFUL) &&
44 f1(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
45 F1(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
46 f2(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
47 F2(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) &&
48 f3(0, 0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL) ==
49 F3(0x8FFFFFFFFFFFFFFFUL, 0x8FFFFFFFFFFFFFFFUL)