contract Test { u32[3][] data; fn set(u32[3][] _data) -> (u256) { data = _data; return data.length; } fn get() -> (u32[3][] ) { return data; } } // ==== // compileViaYul: also // ---- // set(u32[3][]): 0x20, 0x06, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12 -> 0x06 // gas irOptimized: 189800 // gas legacy: 211149 // gas legacyOptimized: 206054 // data(u256,u256): 0x02, 0x02 -> 0x09 // data(u256,u256): 0x05, 0x01 -> 0x11 // data(u256,u256): 0x06, 0x00 -> FAILURE // get() -> 0x20, 0x06, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12