| Index: crosstest/test_strengthreduce.cpp | 
| diff --git a/crosstest/test_strengthreduce.cpp b/crosstest/test_strengthreduce.cpp | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..b6be659bb3cb257eebf15e113fbf3bb50fab9c2e | 
| --- /dev/null | 
| +++ b/crosstest/test_strengthreduce.cpp | 
| @@ -0,0 +1,30 @@ | 
| +//===- subzero/crosstest/test_strengthreduce.cpp - Strength reduction -----===// | 
| +// | 
| +//                        The Subzero Code Generator | 
| +// | 
| +// This file is distributed under the University of Illinois Open Source | 
| +// License. See LICENSE.TXT for details. | 
| +// | 
| +//===----------------------------------------------------------------------===// | 
| +// | 
| +// Implementation for crosstesting strength reduction. | 
| +// | 
| +//===----------------------------------------------------------------------===// | 
| + | 
| +#include "test_strengthreduce.h" | 
| + | 
| +// TODO(stichnot): Extend to i16 and i8 types, and also test the | 
| +// commutativity transformations.  This may require hand-generating | 
| +// .ll files, because of C/C++ integer promotion rules for arithmetic, | 
| +// and because clang prefers to do its own commutativity | 
| +// transformation. | 
| + | 
| +#define X(constant, suffix)                                                    \ | 
| +  uint32_t multiplyByConst##suffix(uint32_t Val) {                             \ | 
| +    return Val * (uint32_t)constant;                                           \ | 
| +  }                                                                            \ | 
| +  int32_t multiplyByConst##suffix(int32_t Val) {                               \ | 
| +    return Val * (int32_t)constant;                                            \ | 
| +  } | 
| +CONST_TABLE | 
| +#undef X | 
|  |