## 串行:数值检查通过;每遍 103127 个周期 DMA 指令 2 条,vwait.ge 3 条,vld 64、vst 64 # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [504, 509) { misc: vtrace 0x80000000 } { s0: simm.s32 s1, 0 } # materialized constant # entry bundle: %transform.1 = custom-call(%x_hbm.1) { s1: sld s6, [smem:0x1] } { s0: sne.s32 p0, s6, 0 } { s0: @p0 sbr.rel L_024e } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] # ... 省略 runtime 代码 1 个 bundle # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [510, 589) { s0: simm.s32 s7, 0 } # copy for cssa L_01ff: { s0: sshll.u32 s8, s7, 0x9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:47:60-47:76 <- 58:24-58:37 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 311] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:47:60-47:76 <- 59:24-59:37 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 311] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:50:77-50:93 <- 61:24-61:38 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 311] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:50:77-50:93 <- 62:24-62:38 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 311] s1: simm.s32 s12, 0 ; # materialized constant .encoding { s1.y = lo(imm1) } } { s0: sadd.s32 s11, s8, s0 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:58:24-58:45 <- 56:21-56:38 <- 53:13-53:32 [dma_start; LLO 20] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:59:24-59:44 <- 56:21-56:38 <- 53:13-53:32 [dma_wait; LLO 20] { s0: dma.simple [vmem:s12], [hbm:s11], length=512, dst_flag=[sflag:52] ; .encoding { s0.length = lo(imm0) } } { misc: vwait.ge [sflag:52], 512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:59:24-59:44 <- 56:21-56:38 <- 53:13-53:32 [dma_wait; LLO 326] .encoding { misc.value = imm2 } } { s0: sadd.s32 s15, s8, s1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:61:24-61:46 <- 56:21-56:38 <- 53:13-53:32 [dma_start; LLO 289] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:62:24-62:45 <- 56:21-56:38 <- 53:13-53:32 [dma_wait; LLO 289] s1: simm.s32 s16, 1024 ; # materialized constant vld: vld.8x128 v0, [vmem:0x0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 33] misc: vsyncadd.s32 [sflag:52], -512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:59:24-59:44 <- 56:21-56:38 <- 53:13-53:32 [dma_wait; LLO 327] .encoding { misc.value = imm2 } } { va0: vmul.8x128.f32 v1, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 97] vld: vld.8x128 v2, [vmem:0x8] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 34] { va0: vmul.8x128.f32 v3, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 98] vld: vld.8x128 v4, [vmem:0x10] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 35] { va0: vmul.8x128.f32 v6, 2.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 99] va1: vadd.8x128.f32 v5, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 161] vld: vld.8x128 v7, [vmem:0x18] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 36] { va0: vmul.8x128.f32 v9, 2.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 100] va1: vadd.8x128.f32 v8, 1.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 162] vld: vld.8x128 v10, [vmem:0x20] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 37] { va0: vmul.8x128.f32 v12, 2.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 101] va1: vadd.8x128.f32 v11, 1.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 163] vst: vst.8x128 [vmem:0x400], v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 225] vld: vld.8x128 v13, [vmem:0x28] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 38] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v15, 2.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 102] va1: vadd.8x128.f32 v14, 1.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 164] vst: vst.8x128 [vmem:0x408], v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 226] vld: vld.8x128 v16, [vmem:0x30] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 39] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v18, 2.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 103] va1: vadd.8x128.f32 v17, 1.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 165] vst: vst.8x128 [vmem:0x410], v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 227] vld: vld.8x128 v19, [vmem:0x38] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 40] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v21, 2.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 104] va1: vadd.8x128.f32 v20, 1.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 166] vst: vst.8x128 [vmem:0x418], v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 228] vld: vld.8x128 v22, [vmem:0x40] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 41] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v24, 2.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 105] va1: vadd.8x128.f32 v23, 1.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 167] vst: vst.8x128 [vmem:0x420], v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 229] vld: vld.8x128 v25, [vmem:0x48] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 42] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v27, 2.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 106] va1: vadd.8x128.f32 v26, 1.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 168] vst: vst.8x128 [vmem:0x428], v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 230] vld: vld.8x128 v28, [vmem:0x50] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 43] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v30, 2.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 107] va1: vadd.8x128.f32 v29, 1.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 169] vst: vst.8x128 [vmem:0x430], v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 231] vld: vld.8x128 v31, [vmem:0x58] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 44] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v1, 2.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 108] va1: vadd.8x128.f32 v0, 1.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 170] vst: vst.8x128 [vmem:0x438], v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 232] vld: vld.8x128 v2, [vmem:0x60] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 45] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v4, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 109] va1: vadd.8x128.f32 v3, 1.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 171] vst: vst.8x128 [vmem:0x440], v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 233] vld: vld.8x128 v5, [vmem:0x68] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 46] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v7, 2.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 110] va1: vadd.8x128.f32 v6, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 172] vst: vst.8x128 [vmem:0x448], v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 234] vld: vld.8x128 v8, [vmem:0x70] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 47] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v10, 2.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 111] va1: vadd.8x128.f32 v9, 1.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 173] vst: vst.8x128 [vmem:0x450], v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 235] vld: vld.8x128 v11, [vmem:0x78] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 48] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v13, 2.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 112] va1: vadd.8x128.f32 v12, 1.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 174] vst: vst.8x128 [vmem:0x458], v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 236] vld: vld.8x128 v14, [vmem:0x80] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 49] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v16, 2.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 113] va1: vadd.8x128.f32 v15, 1.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 175] vst: vst.8x128 [vmem:0x460], v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 237] vld: vld.8x128 v17, [vmem:0x88] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 50] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v19, 2.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 114] va1: vadd.8x128.f32 v18, 1.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 176] vst: vst.8x128 [vmem:0x468], v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 238] vld: vld.8x128 v20, [vmem:0x90] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 51] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v22, 2.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 115] va1: vadd.8x128.f32 v21, 1.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 177] vst: vst.8x128 [vmem:0x470], v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 239] vld: vld.8x128 v23, [vmem:0x98] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 52] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v25, 2.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 116] va1: vadd.8x128.f32 v24, 1.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 178] vst: vst.8x128 [vmem:0x478], v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 240] vld: vld.8x128 v26, [vmem:0xa0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 53] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v28, 2.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 117] va1: vadd.8x128.f32 v27, 1.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 179] vst: vst.8x128 [vmem:0x480], v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 241] vld: vld.8x128 v29, [vmem:0xa8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 54] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v31, 2.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 118] va1: vadd.8x128.f32 v30, 1.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 180] vst: vst.8x128 [vmem:0x488], v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 242] vld: vld.8x128 v0, [vmem:0xb0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 55] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v2, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 119] va1: vadd.8x128.f32 v1, 1.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 181] vst: vst.8x128 [vmem:0x490], v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 243] vld: vld.8x128 v3, [vmem:0xb8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 56] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v5, 2.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 120] va1: vadd.8x128.f32 v4, 1.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 182] vst: vst.8x128 [vmem:0x498], v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 244] vld: vld.8x128 v6, [vmem:0xc0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 57] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v8, 2.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 121] va1: vadd.8x128.f32 v7, 1.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 183] vst: vst.8x128 [vmem:0x4a0], v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 245] vld: vld.8x128 v9, [vmem:0xc8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 58] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v11, 2.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 122] va1: vadd.8x128.f32 v10, 1.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 184] vst: vst.8x128 [vmem:0x4a8], v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 246] vld: vld.8x128 v12, [vmem:0xd0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 59] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v14, 2.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 123] va1: vadd.8x128.f32 v13, 1.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 185] vst: vst.8x128 [vmem:0x4b0], v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 247] vld: vld.8x128 v15, [vmem:0xd8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 60] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v17, 2.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 124] va1: vadd.8x128.f32 v16, 1.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 186] vst: vst.8x128 [vmem:0x4b8], v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 248] vld: vld.8x128 v18, [vmem:0xe0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 61] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v20, 2.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 125] va1: vadd.8x128.f32 v19, 1.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 187] vst: vst.8x128 [vmem:0x4c0], v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 249] vld: vld.8x128 v21, [vmem:0xe8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 62] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v23, 2.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 126] va1: vadd.8x128.f32 v22, 1.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 188] vst: vst.8x128 [vmem:0x4c8], v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 250] vld: vld.8x128 v24, [vmem:0xf0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 63] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v26, 2.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 127] va1: vadd.8x128.f32 v25, 1.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 189] vst: vst.8x128 [vmem:0x4d0], v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 251] vld: vld.8x128 v27, [vmem:0xf8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 64] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v29, 2.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 128] va1: vadd.8x128.f32 v28, 1.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 190] vst: vst.8x128 [vmem:0x4d8], v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 252] vld: vld.8x128 v30, [vmem:0x100] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 65] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v0, 2.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 129] va1: vadd.8x128.f32 v31, 1.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 191] vst: vst.8x128 [vmem:0x4e0], v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 253] vld: vld.8x128 v1, [vmem:0x108] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 66] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v3, 2.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 130] va1: vadd.8x128.f32 v2, 1.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 192] vst: vst.8x128 [vmem:0x4e8], v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 254] vld: vld.8x128 v4, [vmem:0x110] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 67] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v6, 2.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 131] va1: vadd.8x128.f32 v5, 1.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 193] vst: vst.8x128 [vmem:0x4f0], v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 255] vld: vld.8x128 v7, [vmem:0x118] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 68] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v9, 2.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 132] va1: vadd.8x128.f32 v8, 1.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 194] vst: vst.8x128 [vmem:0x4f8], v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 256] vld: vld.8x128 v10, [vmem:0x120] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 69] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v12, 2.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 133] va1: vadd.8x128.f32 v11, 1.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 195] vst: vst.8x128 [vmem:0x500], v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 257] vld: vld.8x128 v13, [vmem:0x128] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 70] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v15, 2.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 134] va1: vadd.8x128.f32 v14, 1.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 196] vst: vst.8x128 [vmem:0x508], v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 258] vld: vld.8x128 v16, [vmem:0x130] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 71] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v18, 2.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 135] va1: vadd.8x128.f32 v17, 1.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 197] vst: vst.8x128 [vmem:0x510], v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 259] vld: vld.8x128 v19, [vmem:0x138] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 72] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v21, 2.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 136] va1: vadd.8x128.f32 v20, 1.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 198] vst: vst.8x128 [vmem:0x518], v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 260] vld: vld.8x128 v22, [vmem:0x140] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 73] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v24, 2.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 137] va1: vadd.8x128.f32 v23, 1.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 199] vst: vst.8x128 [vmem:0x520], v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 261] vld: vld.8x128 v25, [vmem:0x148] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 74] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v27, 2.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 138] va1: vadd.8x128.f32 v26, 1.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 200] vst: vst.8x128 [vmem:0x528], v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 262] vld: vld.8x128 v28, [vmem:0x150] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 75] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v30, 2.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 139] va1: vadd.8x128.f32 v29, 1.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 201] vst: vst.8x128 [vmem:0x530], v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 263] vld: vld.8x128 v31, [vmem:0x158] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 76] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v1, 2.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 140] va1: vadd.8x128.f32 v0, 1.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 202] vst: vst.8x128 [vmem:0x538], v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 264] vld: vld.8x128 v2, [vmem:0x160] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 77] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v4, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 141] va1: vadd.8x128.f32 v3, 1.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 203] vst: vst.8x128 [vmem:0x540], v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 265] vld: vld.8x128 v5, [vmem:0x168] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 78] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v7, 2.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 142] va1: vadd.8x128.f32 v6, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 204] vst: vst.8x128 [vmem:0x548], v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 266] vld: vld.8x128 v8, [vmem:0x170] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 79] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v10, 2.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 143] va1: vadd.8x128.f32 v9, 1.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 205] vst: vst.8x128 [vmem:0x550], v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 267] vld: vld.8x128 v11, [vmem:0x178] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 80] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v13, 2.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 144] va1: vadd.8x128.f32 v12, 1.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 206] vst: vst.8x128 [vmem:0x558], v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 268] vld: vld.8x128 v14, [vmem:0x180] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 81] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v16, 2.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 145] va1: vadd.8x128.f32 v15, 1.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 207] vst: vst.8x128 [vmem:0x560], v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 269] vld: vld.8x128 v17, [vmem:0x188] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 82] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v19, 2.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 146] va1: vadd.8x128.f32 v18, 1.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 208] vst: vst.8x128 [vmem:0x568], v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 270] vld: vld.8x128 v20, [vmem:0x190] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 83] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v22, 2.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 147] va1: vadd.8x128.f32 v21, 1.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 209] vst: vst.8x128 [vmem:0x570], v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 271] vld: vld.8x128 v23, [vmem:0x198] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 84] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v25, 2.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 148] va1: vadd.8x128.f32 v24, 1.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 210] vst: vst.8x128 [vmem:0x578], v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 272] vld: vld.8x128 v26, [vmem:0x1a0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 85] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v28, 2.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 149] va1: vadd.8x128.f32 v27, 1.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 211] vst: vst.8x128 [vmem:0x580], v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 273] vld: vld.8x128 v29, [vmem:0x1a8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 86] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v31, 2.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 150] va1: vadd.8x128.f32 v30, 1.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 212] vst: vst.8x128 [vmem:0x588], v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 274] vld: vld.8x128 v0, [vmem:0x1b0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 87] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v2, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 151] va1: vadd.8x128.f32 v1, 1.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 213] vst: vst.8x128 [vmem:0x590], v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 275] vld: vld.8x128 v3, [vmem:0x1b8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 88] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v5, 2.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 152] va1: vadd.8x128.f32 v4, 1.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 214] vst: vst.8x128 [vmem:0x598], v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 276] vld: vld.8x128 v6, [vmem:0x1c0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 89] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v8, 2.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 153] va1: vadd.8x128.f32 v7, 1.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 215] vst: vst.8x128 [vmem:0x5a0], v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 277] vld: vld.8x128 v9, [vmem:0x1c8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 90] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v11, 2.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 154] va1: vadd.8x128.f32 v10, 1.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 216] vst: vst.8x128 [vmem:0x5a8], v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 278] vld: vld.8x128 v12, [vmem:0x1d0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 91] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v14, 2.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 155] va1: vadd.8x128.f32 v13, 1.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 217] vst: vst.8x128 [vmem:0x5b0], v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 279] vld: vld.8x128 v15, [vmem:0x1d8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 92] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v17, 2.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 156] va1: vadd.8x128.f32 v16, 1.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 218] vst: vst.8x128 [vmem:0x5b8], v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 280] vld: vld.8x128 v18, [vmem:0x1e0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 93] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v20, 2.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 157] va1: vadd.8x128.f32 v19, 1.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 219] vst: vst.8x128 [vmem:0x5c0], v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 281] vld: vld.8x128 v21, [vmem:0x1e8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 94] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v23, 2.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 158] va1: vadd.8x128.f32 v22, 1.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 220] vst: vst.8x128 [vmem:0x5c8], v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 282] vld: vld.8x128 v24, [vmem:0x1f0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 95] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v26, 2.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 159] va1: vadd.8x128.f32 v25, 1.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 221] vst: vst.8x128 [vmem:0x5d0], v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 283] vld: vld.8x128 v27, [vmem:0x1f8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:45 <- 56:21-56:38 <- 53:13-53:32 [get; LLO 96] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v29, 2.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:51 <- 56:21-56:38 <- 53:13-53:32 [mul; LLO 160] va1: vadd.8x128.f32 v28, 1.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 222] vst: vst.8x128 [vmem:0x5d8], v22 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 284] { va1: vadd.8x128.f32 v30, 1.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 223] vst: vst.8x128 [vmem:0x5e0], v25 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 285] { va1: vadd.8x128.f32 v31, 1.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:36-60:57 <- 56:21-56:38 <- 53:13-53:32 [add; LLO 224] vst: vst.8x128 [vmem:0x5e8], v28 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 286] { vst: vst.8x128 [vmem:0x5f0], v30 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 287] { vst: vst.8x128 [vmem:0x5f8], v31 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:60:24-60:33 <- 56:21-56:38 <- 53:13-53:32 [swap; LLO 288] { s0: dma.simple [hbm:s15], [vmem:s16], length=512, dst_flag=[sflag:54] ; .encoding { s0.length = lo(imm0) } } { misc: vwait.ge [sflag:54], 512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:62:24-62:45 <- 56:21-56:38 <- 53:13-53:32 [dma_wait; LLO 328] .encoding { misc.value = imm2 } } { s0: sadd.s32 s7, 1, s7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:56:21-56:38 | copy for cssa misc: vsyncadd.s32 [sflag:54], -512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:62:24-62:45 <- 56:21-56:38 <- 53:13-53:32 [dma_wait; LLO 329] .encoding { misc.value = imm2 } } { s0: sge.s32 p1, s7, 64 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:56:21-56:38 | loop exit test { s0: @!p1 sbr.rel L_01ff } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:56:21-56:38 # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] # ... 省略 runtime 代码 2 个 bundle # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [591, 607) { s1: sld s20, [smem:0x0] } { s1: sld s21, [smem:0x1] } { s0: sand.u32 s24, 0xfff, s20 } { s0: sadd.s32 s22, 1, s21 ; s1: sshll.u32 s27, s24, 0x12 } { s0: sand.u32 s23, 0x1, s22 } # smod.u32 w/div 2 { s0: sand.u32 s25, 0x3, s23 } { s0: sshll.u32 s26, s25, 0x10 } { s0: sadd.s32 s28, 131072, s26 } { s0: sshrl.u32 s29, s28, 0x2 } { s0: sor.u32 s30, 0x2d, s29 } { s0: sor.u32 s17, s30, s27 } { misc: vsyncadd.remote.s32 [sflag:s17], 1 } { misc: vwait.ge [sflag:45], 1 ; .encoding { misc.value = imm2 } } { misc: vsyncadd.s32 [sflag:45], -1 ; .encoding { misc.value = imm2 } } { misc: cfence } { misc: vtrace 0x90000000 } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] ## 输入双缓冲:数值检查通过;每遍 67603 个周期 DMA 指令 3 条,vwait.ge 3 条,vld 64、vst 64 # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [504, 509) { misc: vtrace 0x80000000 } { s0: simm.s32 s1, 0 } # materialized constant # entry bundle: %transform.1 = custom-call(%x_hbm.1) { s1: sld s6, [smem:0x1] } { s0: sne.s32 p0, s6, 0 } { s0: @p0 sbr.rel L_0259 } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] # ... 省略 runtime 代码 1 个 bundle # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [510, 600) { s0: simm.s32 s7, 0 ; # materialized constant s1: simm.s32 s10, 0 ; # copy for cssa .encoding { s0.y = lo(imm0) ; s1.y = const(0) } } { s0: dma.simple [vmem:s7], [hbm:s0], length=512, dst_flag=[sflag:52] ; .encoding { s0.length = lo(imm0) } } L_0200: { s0: slt.s32 p1, s10, 0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 30] s1: ssub.s32 s11, 0, s10 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 31] { s0: @!p1 smov s11, s10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 s1: sshll.u32 s12, s10, 0x9 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:47:60-47:76 <- 73:20-73:36 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 355] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:50:77-50:93 <- 81:24-81:38 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 355] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:50:77-50:93 <- 82:24-82:38 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 355] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 { s0: sand.u32 s13, 0x1, s11 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 33] | smod.u32 w/div 2 { s0: ssub.s32 s14, 0, s13 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 34] { s0: @!p1 smov s14, s13 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 { s0: slt.s32 p2, s14, 0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [ne, lt, and; LLO 354] s1: sadd.s32 s15, 2, s14 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 40] { s0: @!p2 smov s15, s14 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 { s0: sshll.u32 s16, s15, 0x9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 356] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 356] s1: sadd.s32 s17, 52, s15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 43] .encoding { s1.y = lo(imm1) } } { s0: sadd.s32 s18, 0, s16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 .encoding { s0.y = lo(imm0) } } { misc: vwait.ge [sflag:s17], 512 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 377] { s0: sadd.s32 s19, 1, s10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:69:17-69:34 | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:37 | copy for cssa s1: ssub.s32 s20, 1, s15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:39-77:47 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [sub; LLO 52] misc: vsyncadd.s32 [sflag:s17], -512 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 378] { s0: sge.s32 p3, s19, 64 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:45 <- 69:17-69:34 <- 53:13-53:32 [lt; LLO 357] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:21-75:46 | loop exit test s1: slt.s32 p4, s19, 64 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:45 <- 69:17-69:34 <- 53:13-53:32 [lt; LLO 362] { s0: sshll.u32 s21, s20, 0x9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 358] s1: sadd.s32 s24, s12, s0 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 { s0: sadd.s32 s25, 512, s24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 s1: sadd.s32 s26, 0, s21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 56] .encoding { s1.y = lo(imm1) } } { s0: sadd.s32 s27, 52, s20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 54] s1: sadd.s32 s30, s12, s1 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:81:24-81:46 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 324] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:82:24-82:45 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 324] { s0: @p4 dma.simple [vmem:s26], [hbm:s25], length=512, dst_flag=[sflag:s27] } { s0: simm.s32 s2, 1024 ; # materialized constant vld: vld.8x128 v0, [vmem:s18] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 68] { va0: vmul.8x128.f32 v1, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 132] vld: vld.8x128 v2, [vmem:s18 + 0x8] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 69] { va0: vmul.8x128.f32 v3, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 133] vld: vld.8x128 v4, [vmem:s18 + 0x10] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 70] { va0: vmul.8x128.f32 v6, 2.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 134] va1: vadd.8x128.f32 v5, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 196] vld: vld.8x128 v7, [vmem:s18 + 0x18] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 71] { va0: vmul.8x128.f32 v9, 2.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 135] va1: vadd.8x128.f32 v8, 1.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 197] vld: vld.8x128 v10, [vmem:s18 + 0x20] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 72] { va0: vmul.8x128.f32 v12, 2.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 136] va1: vadd.8x128.f32 v11, 1.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 198] vst: vst.8x128 [vmem:0x400], v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 260] vld: vld.8x128 v13, [vmem:s18 + 0x28] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 73] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v15, 2.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 137] va1: vadd.8x128.f32 v14, 1.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 199] vst: vst.8x128 [vmem:0x408], v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 261] vld: vld.8x128 v16, [vmem:s18 + 0x30] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 74] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v18, 2.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 138] va1: vadd.8x128.f32 v17, 1.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 200] vst: vst.8x128 [vmem:0x410], v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 262] vld: vld.8x128 v19, [vmem:s18 + 0x38] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 75] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v21, 2.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 139] va1: vadd.8x128.f32 v20, 1.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 201] vst: vst.8x128 [vmem:0x418], v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 263] vld: vld.8x128 v22, [vmem:s18 + 0x40] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 76] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v24, 2.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 140] va1: vadd.8x128.f32 v23, 1.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 202] vst: vst.8x128 [vmem:0x420], v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 264] vld: vld.8x128 v25, [vmem:s18 + 0x48] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 77] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v27, 2.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 141] va1: vadd.8x128.f32 v26, 1.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 203] vst: vst.8x128 [vmem:0x428], v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 265] vld: vld.8x128 v28, [vmem:s18 + 0x50] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 78] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v30, 2.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 142] va1: vadd.8x128.f32 v29, 1.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 204] vst: vst.8x128 [vmem:0x430], v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 266] vld: vld.8x128 v31, [vmem:s18 + 0x58] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 79] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v1, 2.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 143] va1: vadd.8x128.f32 v0, 1.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 205] vst: vst.8x128 [vmem:0x438], v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 267] vld: vld.8x128 v2, [vmem:s18 + 0x60] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 80] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v4, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 144] va1: vadd.8x128.f32 v3, 1.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 206] vst: vst.8x128 [vmem:0x440], v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 268] vld: vld.8x128 v5, [vmem:s18 + 0x68] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 81] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v7, 2.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 145] va1: vadd.8x128.f32 v6, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 207] vst: vst.8x128 [vmem:0x448], v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 269] vld: vld.8x128 v8, [vmem:s18 + 0x70] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 82] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v10, 2.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 146] va1: vadd.8x128.f32 v9, 1.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 208] vst: vst.8x128 [vmem:0x450], v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 270] vld: vld.8x128 v11, [vmem:s18 + 0x78] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 83] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v13, 2.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 147] va1: vadd.8x128.f32 v12, 1.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 209] vst: vst.8x128 [vmem:0x458], v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 271] vld: vld.8x128 v14, [vmem:s18 + 0x80] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 84] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v16, 2.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 148] va1: vadd.8x128.f32 v15, 1.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 210] vst: vst.8x128 [vmem:0x460], v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 272] vld: vld.8x128 v17, [vmem:s18 + 0x88] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 85] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v19, 2.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 149] va1: vadd.8x128.f32 v18, 1.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 211] vst: vst.8x128 [vmem:0x468], v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 273] vld: vld.8x128 v20, [vmem:s18 + 0x90] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 86] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v22, 2.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 150] va1: vadd.8x128.f32 v21, 1.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 212] vst: vst.8x128 [vmem:0x470], v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 274] vld: vld.8x128 v23, [vmem:s18 + 0x98] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 87] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v25, 2.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 151] va1: vadd.8x128.f32 v24, 1.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 213] vst: vst.8x128 [vmem:0x478], v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 275] vld: vld.8x128 v26, [vmem:s18 + 0xa0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 88] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v28, 2.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 152] va1: vadd.8x128.f32 v27, 1.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 214] vst: vst.8x128 [vmem:0x480], v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 276] vld: vld.8x128 v29, [vmem:s18 + 0xa8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 89] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v31, 2.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 153] va1: vadd.8x128.f32 v30, 1.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 215] vst: vst.8x128 [vmem:0x488], v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 277] vld: vld.8x128 v0, [vmem:s18 + 0xb0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 90] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v2, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 154] va1: vadd.8x128.f32 v1, 1.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 216] vst: vst.8x128 [vmem:0x490], v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 278] vld: vld.8x128 v3, [vmem:s18 + 0xb8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 91] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v5, 2.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 155] va1: vadd.8x128.f32 v4, 1.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 217] vst: vst.8x128 [vmem:0x498], v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 279] vld: vld.8x128 v6, [vmem:s18 + 0xc0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 92] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v8, 2.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 156] va1: vadd.8x128.f32 v7, 1.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 218] vst: vst.8x128 [vmem:0x4a0], v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 280] vld: vld.8x128 v9, [vmem:s18 + 0xc8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 93] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v11, 2.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 157] va1: vadd.8x128.f32 v10, 1.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 219] vst: vst.8x128 [vmem:0x4a8], v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 281] vld: vld.8x128 v12, [vmem:s18 + 0xd0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 94] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v14, 2.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 158] va1: vadd.8x128.f32 v13, 1.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 220] vst: vst.8x128 [vmem:0x4b0], v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 282] vld: vld.8x128 v15, [vmem:s18 + 0xd8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 95] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v17, 2.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 159] va1: vadd.8x128.f32 v16, 1.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 221] vst: vst.8x128 [vmem:0x4b8], v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 283] vld: vld.8x128 v18, [vmem:s18 + 0xe0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 96] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v20, 2.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 160] va1: vadd.8x128.f32 v19, 1.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 222] vst: vst.8x128 [vmem:0x4c0], v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 284] vld: vld.8x128 v21, [vmem:s18 + 0xe8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 97] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v23, 2.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 161] va1: vadd.8x128.f32 v22, 1.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 223] vst: vst.8x128 [vmem:0x4c8], v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 285] vld: vld.8x128 v24, [vmem:s18 + 0xf0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 98] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v26, 2.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 162] va1: vadd.8x128.f32 v25, 1.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 224] vst: vst.8x128 [vmem:0x4d0], v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 286] vld: vld.8x128 v27, [vmem:s18 + 0xf8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 99] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v29, 2.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 163] va1: vadd.8x128.f32 v28, 1.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 225] vst: vst.8x128 [vmem:0x4d8], v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 287] vld: vld.8x128 v30, [vmem:s18 + 0x100] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 100] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v0, 2.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 164] va1: vadd.8x128.f32 v31, 1.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 226] vst: vst.8x128 [vmem:0x4e0], v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 288] vld: vld.8x128 v1, [vmem:s18 + 0x108] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 101] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v3, 2.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 165] va1: vadd.8x128.f32 v2, 1.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 227] vst: vst.8x128 [vmem:0x4e8], v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 289] vld: vld.8x128 v4, [vmem:s18 + 0x110] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 102] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v6, 2.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 166] va1: vadd.8x128.f32 v5, 1.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 228] vst: vst.8x128 [vmem:0x4f0], v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 290] vld: vld.8x128 v7, [vmem:s18 + 0x118] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 103] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v9, 2.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 167] va1: vadd.8x128.f32 v8, 1.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 229] vst: vst.8x128 [vmem:0x4f8], v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 291] vld: vld.8x128 v10, [vmem:s18 + 0x120] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 104] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v12, 2.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 168] va1: vadd.8x128.f32 v11, 1.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 230] vst: vst.8x128 [vmem:0x500], v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 292] vld: vld.8x128 v13, [vmem:s18 + 0x128] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 105] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v15, 2.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 169] va1: vadd.8x128.f32 v14, 1.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 231] vst: vst.8x128 [vmem:0x508], v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 293] vld: vld.8x128 v16, [vmem:s18 + 0x130] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 106] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v18, 2.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 170] va1: vadd.8x128.f32 v17, 1.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 232] vst: vst.8x128 [vmem:0x510], v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 294] vld: vld.8x128 v19, [vmem:s18 + 0x138] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 107] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v21, 2.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 171] va1: vadd.8x128.f32 v20, 1.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 233] vst: vst.8x128 [vmem:0x518], v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 295] vld: vld.8x128 v22, [vmem:s18 + 0x140] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 108] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v24, 2.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 172] va1: vadd.8x128.f32 v23, 1.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 234] vst: vst.8x128 [vmem:0x520], v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 296] vld: vld.8x128 v25, [vmem:s18 + 0x148] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 109] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v27, 2.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 173] va1: vadd.8x128.f32 v26, 1.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 235] vst: vst.8x128 [vmem:0x528], v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 297] vld: vld.8x128 v28, [vmem:s18 + 0x150] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 110] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v30, 2.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 174] va1: vadd.8x128.f32 v29, 1.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 236] vst: vst.8x128 [vmem:0x530], v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 298] vld: vld.8x128 v31, [vmem:s18 + 0x158] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 111] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v1, 2.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 175] va1: vadd.8x128.f32 v0, 1.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 237] vst: vst.8x128 [vmem:0x538], v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 299] vld: vld.8x128 v2, [vmem:s18 + 0x160] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 112] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v4, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 176] va1: vadd.8x128.f32 v3, 1.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 238] vst: vst.8x128 [vmem:0x540], v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 300] vld: vld.8x128 v5, [vmem:s18 + 0x168] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 113] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v7, 2.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 177] va1: vadd.8x128.f32 v6, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 239] vst: vst.8x128 [vmem:0x548], v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 301] vld: vld.8x128 v8, [vmem:s18 + 0x170] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 114] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v10, 2.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 178] va1: vadd.8x128.f32 v9, 1.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 240] vst: vst.8x128 [vmem:0x550], v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 302] vld: vld.8x128 v11, [vmem:s18 + 0x178] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 115] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v13, 2.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 179] va1: vadd.8x128.f32 v12, 1.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 241] vst: vst.8x128 [vmem:0x558], v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 303] vld: vld.8x128 v14, [vmem:s18 + 0x180] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 116] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v16, 2.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 180] va1: vadd.8x128.f32 v15, 1.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 242] vst: vst.8x128 [vmem:0x560], v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 304] vld: vld.8x128 v17, [vmem:s18 + 0x188] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 117] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v19, 2.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 181] va1: vadd.8x128.f32 v18, 1.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 243] vst: vst.8x128 [vmem:0x568], v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 305] vld: vld.8x128 v20, [vmem:s18 + 0x190] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 118] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v22, 2.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 182] va1: vadd.8x128.f32 v21, 1.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 244] vst: vst.8x128 [vmem:0x570], v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 306] vld: vld.8x128 v23, [vmem:s18 + 0x198] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 119] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v25, 2.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 183] va1: vadd.8x128.f32 v24, 1.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 245] vst: vst.8x128 [vmem:0x578], v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 307] vld: vld.8x128 v26, [vmem:s18 + 0x1a0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 120] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v28, 2.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 184] va1: vadd.8x128.f32 v27, 1.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 246] vst: vst.8x128 [vmem:0x580], v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 308] vld: vld.8x128 v29, [vmem:s18 + 0x1a8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 121] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v31, 2.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 185] va1: vadd.8x128.f32 v30, 1.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 247] vst: vst.8x128 [vmem:0x588], v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 309] vld: vld.8x128 v0, [vmem:s18 + 0x1b0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 122] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v2, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 186] va1: vadd.8x128.f32 v1, 1.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 248] vst: vst.8x128 [vmem:0x590], v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 310] vld: vld.8x128 v3, [vmem:s18 + 0x1b8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 123] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v5, 2.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 187] va1: vadd.8x128.f32 v4, 1.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 249] vst: vst.8x128 [vmem:0x598], v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 311] vld: vld.8x128 v6, [vmem:s18 + 0x1c0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 124] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v8, 2.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 188] va1: vadd.8x128.f32 v7, 1.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 250] vst: vst.8x128 [vmem:0x5a0], v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 312] vld: vld.8x128 v9, [vmem:s18 + 0x1c8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 125] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v11, 2.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 189] va1: vadd.8x128.f32 v10, 1.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 251] vst: vst.8x128 [vmem:0x5a8], v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 313] vld: vld.8x128 v12, [vmem:s18 + 0x1d0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 126] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v14, 2.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 190] va1: vadd.8x128.f32 v13, 1.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 252] vst: vst.8x128 [vmem:0x5b0], v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 314] vld: vld.8x128 v15, [vmem:s18 + 0x1d8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 127] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v17, 2.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 191] va1: vadd.8x128.f32 v16, 1.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 253] vst: vst.8x128 [vmem:0x5b8], v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 315] vld: vld.8x128 v18, [vmem:s18 + 0x1e0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 128] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v20, 2.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 192] va1: vadd.8x128.f32 v19, 1.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 254] vst: vst.8x128 [vmem:0x5c0], v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 316] vld: vld.8x128 v21, [vmem:s18 + 0x1e8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 129] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v23, 2.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 193] va1: vadd.8x128.f32 v22, 1.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 255] vst: vst.8x128 [vmem:0x5c8], v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 317] vld: vld.8x128 v24, [vmem:s18 + 0x1f0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 130] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v26, 2.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 194] va1: vadd.8x128.f32 v25, 1.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 256] vst: vst.8x128 [vmem:0x5d0], v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 318] vld: vld.8x128 v27, [vmem:s18 + 0x1f8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:48 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 131] .encoding { vst.offset = imm2 } } { va0: vmul.8x128.f32 v29, 2.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:54 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 195] va1: vadd.8x128.f32 v28, 1.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 257] vst: vst.8x128 [vmem:0x5d8], v22 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 319] { va1: vadd.8x128.f32 v30, 1.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 258] vst: vst.8x128 [vmem:0x5e0], v25 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 320] { va1: vadd.8x128.f32 v31, 1.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:36-80:60 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 259] vst: vst.8x128 [vmem:0x5e8], v28 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 321] { vst: vst.8x128 [vmem:0x5f0], v30 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 322] { vst: vst.8x128 [vmem:0x5f8], v31 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:80:24-80:33 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 323] { s0: dma.simple [hbm:s30], [vmem:s2], length=512, dst_flag=[sflag:54] ; .encoding { s0.length = lo(imm0) } } { misc: vwait.ge [sflag:54], 512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:82:24-82:45 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 379] .encoding { misc.value = imm2 } } { s0: @!p3 sbr.rel L_0200 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:69:17-69:34 s1: smov s10, s19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:69:17-69:34 | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:37 | copy for cssa misc: vsyncadd.s32 [sflag:54], -512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:82:24-82:45 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 380] .encoding { misc.value = imm2 } } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] # ... 省略 runtime 代码 2 个 bundle # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [602, 618) { s1: sld s20, [smem:0x0] } { s1: sld s21, [smem:0x1] } { s0: sand.u32 s24, 0xfff, s20 } { s0: sadd.s32 s22, 1, s21 ; s1: sshll.u32 s27, s24, 0x12 } { s0: sand.u32 s23, 0x1, s22 } # smod.u32 w/div 2 { s0: sand.u32 s25, 0x3, s23 } { s0: sshll.u32 s26, s25, 0x10 } { s0: sadd.s32 s28, 131072, s26 } { s0: sshrl.u32 s29, s28, 0x2 } { s0: sor.u32 s30, 0x2d, s29 } { s0: sor.u32 s17, s30, s27 } { misc: vsyncadd.remote.s32 [sflag:s17], 1 } { misc: vwait.ge [sflag:45], 1 ; .encoding { misc.value = imm2 } } { misc: vsyncadd.s32 [sflag:45], -1 ; .encoding { misc.value = imm2 } } { misc: cfence } { misc: vtrace 0x90000000 } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] ## 输入输出双缓冲:数值检查通过;每遍 67653 个周期 DMA 指令 3 条,vwait.ge 5 条,vld 64、vst 64 # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [504, 509) { misc: vtrace 0x80000000 } { s0: simm.s32 s1, 0 } # materialized constant # entry bundle: %transform.1 = custom-call(%x_hbm.1) { s1: sld s6, [smem:0x1] } { s0: sne.s32 p0, s6, 0 } { s0: @p0 sbr.rel L_025c } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] # ... 省略 runtime 代码 1 个 bundle # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [510, 604) { s0: simm.s32 s7, 0 ; # materialized constant s1: simm.s32 s10, 0 ; # copy for cssa .encoding { s0.y = lo(imm0) ; s1.y = const(0) } } { s0: dma.simple [vmem:s7], [hbm:s0], length=512, dst_flag=[sflag:52] ; .encoding { s0.length = lo(imm0) } } L_0200: { s0: slt.s32 p1, s10, 0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 30] s1: ssub.s32 s11, 0, s10 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 31] { s0: @!p1 smov s11, s10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 s1: sshll.u32 s12, s10, 0x9 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:47:60-47:76 <- 73:20-73:36 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 369] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:50:77-50:93 <- 90:24-90:41 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 369] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 { s0: sand.u32 s13, 0x1, s11 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 33] | smod.u32 w/div 2 { s0: ssub.s32 s14, 0, s13 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [rem; LLO 34] { s0: @!p1 smov s14, s13 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 { s0: slt.s32 p2, s14, 0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [ne, lt, and; LLO 368] s1: sadd.s32 s15, 2, s14 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 40] { s0: @!p2 smov s15, s14 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:71:27-71:35 { s0: sshll.u32 s16, s15, 0x9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:90:24-90:49 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 370] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 370] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 370] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 370] s1: sadd.s32 s17, 52, s15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 43] .encoding { s1.y = lo(imm1) } } { s0: sadd.s32 s18, 0, s16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 .encoding { s0.y = lo(imm0) } } { misc: vwait.ge [sflag:s17], 512 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 394] { s0: sadd.s32 s19, 1, s10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:69:17-69:34 | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:37 | copy for cssa s1: ssub.s32 s20, 1, s15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:39-77:47 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [sub; LLO 52] misc: vsyncadd.s32 [sflag:s17], -512 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:73:20-73:43 <- 69:17-69:34 <- 53:13-53:32 [dma_wait; LLO 395] { s0: sge.s32 p3, s19, 64 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:45 <- 69:17-69:34 <- 53:13-53:32 [lt; LLO 371] | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:21-75:46 | loop exit test s1: slt.s32 p4, s19, 64 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:45 <- 69:17-69:34 <- 53:13-53:32 [lt; LLO 379] { s0: sshll.u32 s21, s20, 0x9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 372] s1: sadd.s32 s24, s12, s0 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 { s0: sadd.s32 s25, 512, s24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 s1: sge.s32 p5, s10, 2 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:85:33-85:42 <- 69:17-69:34 <- 53:13-53:32 [ge; LLO 380] { s0: sadd.s32 s26, 0, s21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 56] s1: sadd.s32 s27, 52, s20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:77:24-77:56 <- 75:21-75:46 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 54] .encoding { s0.y = lo(imm0) } } { s0: @p4 dma.simple [vmem:s26], [hbm:s25], length=512, dst_flag=[sflag:s27] } { s0: sadd.s32 s28, 54, s15 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:90:24-90:49 | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:87:28-87:56 { misc: @p5 vwait.ge [sflag:s28], 512 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:87:28-87:56 { s0: sadd.s32 s29, 1024, s16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 s1: sadd.s32 s3, s12, s1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:90:24-90:49 <- 69:17-69:34 <- 53:13-53:32 [dma_start; LLO 332] vld: vld.8x128 v0, [vmem:s18] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 74] misc: @p5 vsyncadd.s32 [sflag:s28], -512 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:87:28-87:56 { s0: smov s10, s19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:69:17-69:34 | chapter02/02_dma_pipeline/01_pallas_double_buffer.py:75:29-75:37 | copy for cssa va0: vmul.8x128.f32 v1, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 138] vld: vld.8x128 v2, [vmem:s18 + 0x8] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 75] { va0: vmul.8x128.f32 v3, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 139] vld: vld.8x128 v4, [vmem:s18 + 0x10] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 76] { va0: vmul.8x128.f32 v6, 2.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 140] va1: vadd.8x128.f32 v5, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 202] vld: vld.8x128 v7, [vmem:s18 + 0x18] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 77] { va0: vmul.8x128.f32 v9, 2.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 141] va1: vadd.8x128.f32 v8, 1.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 203] vld: vld.8x128 v10, [vmem:s18 + 0x20] } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 78] { va0: vmul.8x128.f32 v12, 2.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 142] va1: vadd.8x128.f32 v11, 1.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 204] vst: vst.8x128 [vmem:s29], v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 267] vld: vld.8x128 v13, [vmem:s18 + 0x28] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 79] .encoding { vst.base = vs0 } } { va0: vmul.8x128.f32 v15, 2.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 143] va1: vadd.8x128.f32 v14, 1.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 205] vst: vst.8x128 [vmem:s29 + 0x8], v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 268] vld: vld.8x128 v16, [vmem:s18 + 0x30] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 80] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v18, 2.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 144] va1: vadd.8x128.f32 v17, 1.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 206] vst: vst.8x128 [vmem:s29 + 0x10], v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 269] vld: vld.8x128 v19, [vmem:s18 + 0x38] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 81] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v21, 2.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 145] va1: vadd.8x128.f32 v20, 1.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 207] vst: vst.8x128 [vmem:s29 + 0x18], v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 270] vld: vld.8x128 v22, [vmem:s18 + 0x40] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 82] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v24, 2.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 146] va1: vadd.8x128.f32 v23, 1.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 208] vst: vst.8x128 [vmem:s29 + 0x20], v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 271] vld: vld.8x128 v25, [vmem:s18 + 0x48] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 83] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v27, 2.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 147] va1: vadd.8x128.f32 v26, 1.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 209] vst: vst.8x128 [vmem:s29 + 0x28], v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 272] vld: vld.8x128 v28, [vmem:s18 + 0x50] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 84] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v30, 2.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 148] va1: vadd.8x128.f32 v29, 1.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 210] vst: vst.8x128 [vmem:s29 + 0x30], v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 273] vld: vld.8x128 v31, [vmem:s18 + 0x58] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 85] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v1, 2.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 149] va1: vadd.8x128.f32 v0, 1.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 211] vst: vst.8x128 [vmem:s29 + 0x38], v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 274] vld: vld.8x128 v2, [vmem:s18 + 0x60] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 86] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v4, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 150] va1: vadd.8x128.f32 v3, 1.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 212] vst: vst.8x128 [vmem:s29 + 0x40], v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 275] vld: vld.8x128 v5, [vmem:s18 + 0x68] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 87] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v7, 2.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 151] va1: vadd.8x128.f32 v6, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 213] vst: vst.8x128 [vmem:s29 + 0x48], v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 276] vld: vld.8x128 v8, [vmem:s18 + 0x70] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 88] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v10, 2.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 152] va1: vadd.8x128.f32 v9, 1.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 214] vst: vst.8x128 [vmem:s29 + 0x50], v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 277] vld: vld.8x128 v11, [vmem:s18 + 0x78] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 89] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v13, 2.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 153] va1: vadd.8x128.f32 v12, 1.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 215] vst: vst.8x128 [vmem:s29 + 0x58], v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 278] vld: vld.8x128 v14, [vmem:s18 + 0x80] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 90] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v16, 2.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 154] va1: vadd.8x128.f32 v15, 1.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 216] vst: vst.8x128 [vmem:s29 + 0x60], v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 279] vld: vld.8x128 v17, [vmem:s18 + 0x88] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 91] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v19, 2.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 155] va1: vadd.8x128.f32 v18, 1.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 217] vst: vst.8x128 [vmem:s29 + 0x68], v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 280] vld: vld.8x128 v20, [vmem:s18 + 0x90] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 92] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v22, 2.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 156] va1: vadd.8x128.f32 v21, 1.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 218] vst: vst.8x128 [vmem:s29 + 0x70], v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 281] vld: vld.8x128 v23, [vmem:s18 + 0x98] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 93] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v25, 2.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 157] va1: vadd.8x128.f32 v24, 1.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 219] vst: vst.8x128 [vmem:s29 + 0x78], v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 282] vld: vld.8x128 v26, [vmem:s18 + 0xa0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 94] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v28, 2.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 158] va1: vadd.8x128.f32 v27, 1.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 220] vst: vst.8x128 [vmem:s29 + 0x80], v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 283] vld: vld.8x128 v29, [vmem:s18 + 0xa8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 95] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v31, 2.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 159] va1: vadd.8x128.f32 v30, 1.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 221] vst: vst.8x128 [vmem:s29 + 0x88], v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 284] vld: vld.8x128 v0, [vmem:s18 + 0xb0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 96] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v2, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 160] va1: vadd.8x128.f32 v1, 1.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 222] vst: vst.8x128 [vmem:s29 + 0x90], v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 285] vld: vld.8x128 v3, [vmem:s18 + 0xb8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 97] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v5, 2.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 161] va1: vadd.8x128.f32 v4, 1.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 223] vst: vst.8x128 [vmem:s29 + 0x98], v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 286] vld: vld.8x128 v6, [vmem:s18 + 0xc0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 98] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v8, 2.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 162] va1: vadd.8x128.f32 v7, 1.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 224] vst: vst.8x128 [vmem:s29 + 0xa0], v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 287] vld: vld.8x128 v9, [vmem:s18 + 0xc8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 99] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v11, 2.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 163] va1: vadd.8x128.f32 v10, 1.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 225] vst: vst.8x128 [vmem:s29 + 0xa8], v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 288] vld: vld.8x128 v12, [vmem:s18 + 0xd0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 100] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v14, 2.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 164] va1: vadd.8x128.f32 v13, 1.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 226] vst: vst.8x128 [vmem:s29 + 0xb0], v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 289] vld: vld.8x128 v15, [vmem:s18 + 0xd8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 101] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v17, 2.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 165] va1: vadd.8x128.f32 v16, 1.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 227] vst: vst.8x128 [vmem:s29 + 0xb8], v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 290] vld: vld.8x128 v18, [vmem:s18 + 0xe0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 102] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v20, 2.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 166] va1: vadd.8x128.f32 v19, 1.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 228] vst: vst.8x128 [vmem:s29 + 0xc0], v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 291] vld: vld.8x128 v21, [vmem:s18 + 0xe8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 103] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v23, 2.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 167] va1: vadd.8x128.f32 v22, 1.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 229] vst: vst.8x128 [vmem:s29 + 0xc8], v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 292] vld: vld.8x128 v24, [vmem:s18 + 0xf0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 104] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v26, 2.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 168] va1: vadd.8x128.f32 v25, 1.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 230] vst: vst.8x128 [vmem:s29 + 0xd0], v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 293] vld: vld.8x128 v27, [vmem:s18 + 0xf8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 105] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v29, 2.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 169] va1: vadd.8x128.f32 v28, 1.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 231] vst: vst.8x128 [vmem:s29 + 0xd8], v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 294] vld: vld.8x128 v30, [vmem:s18 + 0x100] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 106] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v0, 2.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 170] va1: vadd.8x128.f32 v31, 1.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 232] vst: vst.8x128 [vmem:s29 + 0xe0], v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 295] vld: vld.8x128 v1, [vmem:s18 + 0x108] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 107] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v3, 2.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 171] va1: vadd.8x128.f32 v2, 1.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 233] vst: vst.8x128 [vmem:s29 + 0xe8], v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 296] vld: vld.8x128 v4, [vmem:s18 + 0x110] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 108] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v6, 2.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 172] va1: vadd.8x128.f32 v5, 1.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 234] vst: vst.8x128 [vmem:s29 + 0xf0], v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 297] vld: vld.8x128 v7, [vmem:s18 + 0x118] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 109] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v9, 2.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 173] va1: vadd.8x128.f32 v8, 1.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 235] vst: vst.8x128 [vmem:s29 + 0xf8], v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 298] vld: vld.8x128 v10, [vmem:s18 + 0x120] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 110] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v12, 2.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 174] va1: vadd.8x128.f32 v11, 1.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 236] vst: vst.8x128 [vmem:s29 + 0x100], v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 299] vld: vld.8x128 v13, [vmem:s18 + 0x128] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 111] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v15, 2.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 175] va1: vadd.8x128.f32 v14, 1.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 237] vst: vst.8x128 [vmem:s29 + 0x108], v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 300] vld: vld.8x128 v16, [vmem:s18 + 0x130] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 112] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v18, 2.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 176] va1: vadd.8x128.f32 v17, 1.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 238] vst: vst.8x128 [vmem:s29 + 0x110], v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 301] vld: vld.8x128 v19, [vmem:s18 + 0x138] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 113] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v21, 2.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 177] va1: vadd.8x128.f32 v20, 1.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 239] vst: vst.8x128 [vmem:s29 + 0x118], v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 302] vld: vld.8x128 v22, [vmem:s18 + 0x140] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 114] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v24, 2.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 178] va1: vadd.8x128.f32 v23, 1.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 240] vst: vst.8x128 [vmem:s29 + 0x120], v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 303] vld: vld.8x128 v25, [vmem:s18 + 0x148] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 115] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v27, 2.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 179] va1: vadd.8x128.f32 v26, 1.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 241] vst: vst.8x128 [vmem:s29 + 0x128], v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 304] vld: vld.8x128 v28, [vmem:s18 + 0x150] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 116] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v30, 2.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 180] va1: vadd.8x128.f32 v29, 1.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 242] vst: vst.8x128 [vmem:s29 + 0x130], v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 305] vld: vld.8x128 v31, [vmem:s18 + 0x158] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 117] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v1, 2.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 181] va1: vadd.8x128.f32 v0, 1.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 243] vst: vst.8x128 [vmem:s29 + 0x138], v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 306] vld: vld.8x128 v2, [vmem:s18 + 0x160] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 118] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v4, 2.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 182] va1: vadd.8x128.f32 v3, 1.0, v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 244] vst: vst.8x128 [vmem:s29 + 0x140], v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 307] vld: vld.8x128 v5, [vmem:s18 + 0x168] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 119] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v7, 2.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 183] va1: vadd.8x128.f32 v6, 1.0, v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 245] vst: vst.8x128 [vmem:s29 + 0x148], v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 308] vld: vld.8x128 v8, [vmem:s18 + 0x170] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 120] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v10, 2.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 184] va1: vadd.8x128.f32 v9, 1.0, v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 246] vst: vst.8x128 [vmem:s29 + 0x150], v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 309] vld: vld.8x128 v11, [vmem:s18 + 0x178] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 121] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v13, 2.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 185] va1: vadd.8x128.f32 v12, 1.0, v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 247] vst: vst.8x128 [vmem:s29 + 0x158], v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 310] vld: vld.8x128 v14, [vmem:s18 + 0x180] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 122] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v16, 2.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 186] va1: vadd.8x128.f32 v15, 1.0, v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 248] vst: vst.8x128 [vmem:s29 + 0x160], v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 311] vld: vld.8x128 v17, [vmem:s18 + 0x188] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 123] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v19, 2.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 187] va1: vadd.8x128.f32 v18, 1.0, v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 249] vst: vst.8x128 [vmem:s29 + 0x168], v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 312] vld: vld.8x128 v20, [vmem:s18 + 0x190] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 124] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v22, 2.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 188] va1: vadd.8x128.f32 v21, 1.0, v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 250] vst: vst.8x128 [vmem:s29 + 0x170], v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 313] vld: vld.8x128 v23, [vmem:s18 + 0x198] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 125] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v25, 2.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 189] va1: vadd.8x128.f32 v24, 1.0, v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 251] vst: vst.8x128 [vmem:s29 + 0x178], v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 314] vld: vld.8x128 v26, [vmem:s18 + 0x1a0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 126] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v28, 2.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 190] va1: vadd.8x128.f32 v27, 1.0, v22 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 252] vst: vst.8x128 [vmem:s29 + 0x180], v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 315] vld: vld.8x128 v29, [vmem:s18 + 0x1a8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 127] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v31, 2.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 191] va1: vadd.8x128.f32 v30, 1.0, v25 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 253] vst: vst.8x128 [vmem:s29 + 0x188], v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 316] vld: vld.8x128 v0, [vmem:s18 + 0x1b0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 128] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v2, 2.0, v0 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 192] va1: vadd.8x128.f32 v1, 1.0, v28 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 254] vst: vst.8x128 [vmem:s29 + 0x190], v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 317] vld: vld.8x128 v3, [vmem:s18 + 0x1b8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 129] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v5, 2.0, v3 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 193] va1: vadd.8x128.f32 v4, 1.0, v31 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 255] vst: vst.8x128 [vmem:s29 + 0x198], v30 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 318] vld: vld.8x128 v6, [vmem:s18 + 0x1c0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 130] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v8, 2.0, v6 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 194] va1: vadd.8x128.f32 v7, 1.0, v2 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 256] vst: vst.8x128 [vmem:s29 + 0x1a0], v1 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 319] vld: vld.8x128 v9, [vmem:s18 + 0x1c8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 131] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v11, 2.0, v9 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 195] va1: vadd.8x128.f32 v10, 1.0, v5 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 257] vst: vst.8x128 [vmem:s29 + 0x1a8], v4 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 320] vld: vld.8x128 v12, [vmem:s18 + 0x1d0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 132] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v14, 2.0, v12 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 196] va1: vadd.8x128.f32 v13, 1.0, v8 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 258] vst: vst.8x128 [vmem:s29 + 0x1b0], v7 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 321] vld: vld.8x128 v15, [vmem:s18 + 0x1d8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 133] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v17, 2.0, v15 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 197] va1: vadd.8x128.f32 v16, 1.0, v11 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 259] vst: vst.8x128 [vmem:s29 + 0x1b8], v10 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 322] vld: vld.8x128 v18, [vmem:s18 + 0x1e0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 134] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v20, 2.0, v18 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 198] va1: vadd.8x128.f32 v19, 1.0, v14 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 260] vst: vst.8x128 [vmem:s29 + 0x1c0], v13 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 323] vld: vld.8x128 v21, [vmem:s18 + 0x1e8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 135] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v23, 2.0, v21 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 199] va1: vadd.8x128.f32 v22, 1.0, v17 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 261] vst: vst.8x128 [vmem:s29 + 0x1c8], v16 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 324] vld: vld.8x128 v24, [vmem:s18 + 0x1f0] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 136] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v26, 2.0, v24 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 200] va1: vadd.8x128.f32 v25, 1.0, v20 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 262] vst: vst.8x128 [vmem:s29 + 0x1d0], v19 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 325] vld: vld.8x128 v27, [vmem:s18 + 0x1f8] ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:51 <- 69:17-69:34 <- 53:13-53:32 [get; LLO 137] .encoding { vst.base = vs0 ; vst.offset = imm2 } } { va0: vmul.8x128.f32 v29, 2.0, v27 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:57 <- 69:17-69:34 <- 53:13-53:32 [mul; LLO 201] va1: vadd.8x128.f32 v28, 1.0, v23 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 263] vst: vst.8x128 [vmem:s29 + 0x1d8], v22 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 326] { va1: vadd.8x128.f32 v30, 1.0, v26 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 264] vst: vst.8x128 [vmem:s29 + 0x1e0], v25 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 327] { va1: vadd.8x128.f32 v31, 1.0, v29 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:39-89:63 <- 69:17-69:34 <- 53:13-53:32 [add; LLO 265] vst: vst.8x128 [vmem:s29 + 0x1e8], v28 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 328] { vst: vst.8x128 [vmem:s29 + 0x1f0], v30 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 329] { s0: @!p3 sbr.rel L_0200 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:69:17-69:34 vst: vst.8x128 [vmem:s29 + 0x1f8], v31 } # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:89:24-89:36 <- 69:17-69:34 <- 53:13-53:32 [swap; LLO 330] { s0: dma.simple [hbm:s3], [vmem:s29], length=512, dst_flag=[sflag:s28] } { misc: vwait.ge [sflag:54], 512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:94:20-94:54 <- 53:13-53:32 [dma_wait; LLO 400] .encoding { misc.value = imm2 } } { misc: vsyncadd.s32 [sflag:54], -512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:94:20-94:54 <- 53:13-53:32 [dma_wait; LLO 401] .encoding { misc.value = imm2 } } { misc: vwait.ge [sflag:55], 512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:95:20-95:60 <- 53:13-53:32 [dma_wait; LLO 402] .encoding { misc.value = imm2 } } { misc: vsyncadd.s32 [sflag:55], -512 ; # chapter02/02_dma_pipeline/01_pallas_double_buffer.py:95:20-95:60 <- 53:13-53:32 [dma_wait; LLO 403] .encoding { misc.value = imm2 } } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] # ... 省略 runtime 代码 1 个 bundle # function jit(transform)/transform/mpmd_map [symbol 4, transform.1]; image bundles [605, 621) { s1: sld s20, [smem:0x0] } { s1: sld s21, [smem:0x1] } { s0: sand.u32 s24, 0xfff, s20 } { s0: sadd.s32 s22, 1, s21 ; s1: sshll.u32 s27, s24, 0x12 } { s0: sand.u32 s23, 0x1, s22 } # smod.u32 w/div 2 { s0: sand.u32 s25, 0x3, s23 } { s0: sshll.u32 s26, s25, 0x10 } { s0: sadd.s32 s28, 131072, s26 } { s0: sshrl.u32 s29, s28, 0x2 } { s0: sor.u32 s30, 0x2d, s29 } { s0: sor.u32 s17, s30, s27 } { misc: vsyncadd.remote.s32 [sflag:s17], 1 } { misc: vwait.ge [sflag:45], 1 ; .encoding { misc.value = imm2 } } { misc: vsyncadd.s32 [sflag:45], -1 ; .encoding { misc.value = imm2 } } { misc: cfence } { misc: vtrace 0x90000000 } # end function jit(transform)/transform/mpmd_map [symbol 4, transform.1] ## 输入输出双缓冲,tile 为 f32[512,128](256 KiB):每遍 67782 个周期 ## 输入输出双缓冲,tile 为 f32[1024,128](512 KiB):每遍 53332 个周期 ## 输入输出双缓冲,tile 为 f32[2048,128](1024 KiB):每遍 43836 个周期