mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| {
 | |
|     // This is not fully simplified on purpose because we
 | |
|     // need another split step in between. The full simplification
 | |
|     // is tested in the fullSuite.
 | |
|     let x := calldataload(0)
 | |
|     let a := shl(12, shr(4, x))
 | |
|     let b := shl(4, shr(12, x))
 | |
|     let c := shr(12, shl(4, x))
 | |
|     let d := shr(4, shl(12, x))
 | |
|     let e := shl(150, shr(2, shl(150, x)))
 | |
|     sstore(15, x)
 | |
|     sstore(16, a)
 | |
|     sstore(17, b)
 | |
|     sstore(18, c)
 | |
|     sstore(19, d)
 | |
|     sstore(20, e)
 | |
| }
 | |
| // ====
 | |
| // EVMVersion: >byzantium
 | |
| // ----
 | |
| // step: expressionSimplifier
 | |
| //
 | |
| // {
 | |
| //     let x := calldataload(0)
 | |
| //     let a := and(shl(8, x), 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000)
 | |
| //     let b := and(shr(8, x), 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0)
 | |
| //     let c := and(shr(8, x), 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)
 | |
| //     let d := and(shl(8, x), 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00)
 | |
| //     let _14 := 150
 | |
| //     let e := shl(_14, and(shl(148, x), 0x3ffffffffffffffffffffffffff0000000000000000000000000000000000000))
 | |
| //     sstore(15, x)
 | |
| //     sstore(16, a)
 | |
| //     sstore(17, b)
 | |
| //     sstore(18, c)
 | |
| //     sstore(19, d)
 | |
| //     sstore(20, e)
 | |
| // }
 |