| //===- 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 |