(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.target/
powerpc/
rlwinm.h
       1  typedef unsigned int u32;
       2  
       3  static inline u32 rot(u32 x, u32 n, u32 mb, u32 me)
       4  {
       5  	u32 y = x;
       6  
       7  	if (n)
       8  		x = 0
       9  #ifdef SL
      10  		| (x << n)
      11  #endif
      12  #ifdef SR
      13  		| (x >> (32 - n))
      14  #endif
      15  		;
      16  
      17  	u32 s = -1;
      18  	if (n)
      19  		s = 0
      20  #ifdef SL
      21  		| (s << n)
      22  #endif
      23  #ifdef SR
      24  		| (s >> (32 - n))
      25  #endif
      26  		;
      27  
      28  	u32 mask = 0;
      29  	mask += 1U << (31 - mb);
      30  	mask += 1U << (31 - mb);
      31  	mask -= 1U << (31 - me);
      32  	mask -= (mb > me);
      33  
      34  	if (mask & ~s)
      35  		return 12345*y;
      36  
      37  	return x & mask;
      38  }
      39  
      40  #define X3(N,B,E) \
      41  u32 f_##N##_##B##_##E(u32 x) { return rot(x,N,B,E); } \
      42  
      43  #define X2(N,B) \
      44  X3(N,B,0) \
      45  X3(N,B,1) \
      46  X3(N,B,2) \
      47  X3(N,B,7) \
      48  X3(N,B,8) \
      49  X3(N,B,9) \
      50  X3(N,B,15) \
      51  X3(N,B,16) \
      52  X3(N,B,17) \
      53  X3(N,B,23) \
      54  X3(N,B,24) \
      55  X3(N,B,25) \
      56  X3(N,B,29) \
      57  X3(N,B,30) \
      58  X3(N,B,31)
      59  #define X1(N) \
      60  X2(N,0) \
      61  X2(N,1) \
      62  X2(N,2) \
      63  X2(N,7) \
      64  X2(N,8) \
      65  X2(N,9) \
      66  X2(N,15) \
      67  X2(N,16) \
      68  X2(N,17) \
      69  X2(N,23) \
      70  X2(N,24) \
      71  X2(N,25) \
      72  X2(N,29) \
      73  X2(N,30) \
      74  X2(N,31)
      75  #define X() \
      76  X1(0) \
      77  X1(1) \
      78  X1(2) \
      79  X1(7) \
      80  X1(8) \
      81  X1(9) \
      82  X1(15) \
      83  X1(16) \
      84  X1(17) \
      85  X1(23) \
      86  X1(24) \
      87  X1(25) \
      88  X1(29) \
      89  X1(30) \
      90  X1(31)
      91  
      92  X()