Lines Matching refs:I32
61 def LOAD_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
64 def LOAD_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
67 def LOAD_F32 : I<(outs F32:$dst), (ins i32imm:$off, I32:$addr,
70 def LOAD_F64 : I<(outs F64:$dst), (ins i32imm:$off, I32:$addr,
77 def : Pat<(i32 (load I32:$addr)), (LOAD_I32 0, $addr, 0)>;
78 def : Pat<(i64 (load I32:$addr)), (LOAD_I64 0, $addr, 0)>;
79 def : Pat<(f32 (load I32:$addr)), (LOAD_F32 0, $addr, 0)>;
80 def : Pat<(f64 (load I32:$addr)), (LOAD_F64 0, $addr, 0)>;
83 def : Pat<(i32 (load (regPlusImm I32:$addr, imm:$off))),
85 def : Pat<(i64 (load (regPlusImm I32:$addr, imm:$off))),
87 def : Pat<(f32 (load (regPlusImm I32:$addr, imm:$off))),
89 def : Pat<(f64 (load (regPlusImm I32:$addr, imm:$off))),
91 def : Pat<(i32 (load (or_is_add I32:$addr, imm:$off))),
93 def : Pat<(i64 (load (or_is_add I32:$addr, imm:$off))),
95 def : Pat<(f32 (load (or_is_add I32:$addr, imm:$off))),
97 def : Pat<(f64 (load (or_is_add I32:$addr, imm:$off))),
99 def : Pat<(i32 (load (regPlusGA I32:$addr,
102 def : Pat<(i64 (load (regPlusGA I32:$addr,
105 def : Pat<(f32 (load (regPlusGA I32:$addr,
108 def : Pat<(f64 (load (regPlusGA I32:$addr,
111 def : Pat<(i32 (load (add I32:$addr, (WebAssemblywrapper texternalsym:$off)))),
113 def : Pat<(i64 (load (add I32:$addr, (WebAssemblywrapper texternalsym:$off)))),
115 def : Pat<(f32 (load (add I32:$addr, (WebAssemblywrapper texternalsym:$off)))),
117 def : Pat<(f64 (load (add I32:$addr, (WebAssemblywrapper texternalsym:$off)))),
145 def LOAD8_S_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
148 def LOAD8_U_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
151 def LOAD16_S_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
154 def LOAD16_U_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
157 def LOAD8_S_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
160 def LOAD8_U_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
163 def LOAD16_S_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
166 def LOAD16_U_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
169 def LOAD32_S_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
172 def LOAD32_U_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
179 def : Pat<(i32 (sextloadi8 I32:$addr)), (LOAD8_S_I32 0, $addr, 0)>;
180 def : Pat<(i32 (zextloadi8 I32:$addr)), (LOAD8_U_I32 0, $addr, 0)>;
181 def : Pat<(i32 (sextloadi16 I32:$addr)), (LOAD16_S_I32 0, $addr, 0)>;
182 def : Pat<(i32 (zextloadi16 I32:$addr)), (LOAD16_U_I32 0, $addr, 0)>;
183 def : Pat<(i64 (sextloadi8 I32:$addr)), (LOAD8_S_I64 0, $addr, 0)>;
184 def : Pat<(i64 (zextloadi8 I32:$addr)), (LOAD8_U_I64 0, $addr, 0)>;
185 def : Pat<(i64 (sextloadi16 I32:$addr)), (LOAD16_S_I64 0, $addr, 0)>;
186 def : Pat<(i64 (zextloadi16 I32:$addr)), (LOAD16_U_I64 0, $addr, 0)>;
187 def : Pat<(i64 (sextloadi32 I32:$addr)), (LOAD32_S_I64 0, $addr, 0)>;
188 def : Pat<(i64 (zextloadi32 I32:$addr)), (LOAD32_U_I64 0, $addr, 0)>;
191 def : Pat<(i32 (sextloadi8 (regPlusImm I32:$addr, imm:$off))),
193 def : Pat<(i32 (zextloadi8 (regPlusImm I32:$addr, imm:$off))),
195 def : Pat<(i32 (sextloadi16 (regPlusImm I32:$addr, imm:$off))),
197 def : Pat<(i32 (zextloadi16 (regPlusImm I32:$addr, imm:$off))),
199 def : Pat<(i64 (sextloadi8 (regPlusImm I32:$addr, imm:$off))),
201 def : Pat<(i64 (zextloadi8 (regPlusImm I32:$addr, imm:$off))),
203 def : Pat<(i64 (sextloadi16 (regPlusImm I32:$addr, imm:$off))),
205 def : Pat<(i64 (zextloadi16 (regPlusImm I32:$addr, imm:$off))),
207 def : Pat<(i64 (sextloadi32 (regPlusImm I32:$addr, imm:$off))),
209 def : Pat<(i64 (zextloadi32 (regPlusImm I32:$addr, imm:$off))),
211 def : Pat<(i32 (sextloadi8 (or_is_add I32:$addr, imm:$off))),
213 def : Pat<(i32 (zextloadi8 (or_is_add I32:$addr, imm:$off))),
215 def : Pat<(i32 (sextloadi16 (or_is_add I32:$addr, imm:$off))),
217 def : Pat<(i32 (zextloadi16 (or_is_add I32:$addr, imm:$off))),
219 def : Pat<(i64 (sextloadi8 (or_is_add I32:$addr, imm:$off))),
221 def : Pat<(i64 (zextloadi8 (or_is_add I32:$addr, imm:$off))),
223 def : Pat<(i64 (sextloadi16 (or_is_add I32:$addr, imm:$off))),
225 def : Pat<(i64 (zextloadi16 (or_is_add I32:$addr, imm:$off))),
227 def : Pat<(i64 (sextloadi32 (or_is_add I32:$addr, imm:$off))),
229 def : Pat<(i64 (zextloadi32 (or_is_add I32:$addr, imm:$off))),
231 def : Pat<(i32 (sextloadi8 (regPlusGA I32:$addr,
234 def : Pat<(i32 (zextloadi8 (regPlusGA I32:$addr,
237 def : Pat<(i32 (sextloadi16 (regPlusGA I32:$addr,
240 def : Pat<(i32 (zextloadi16 (regPlusGA I32:$addr,
243 def : Pat<(i64 (sextloadi8 (regPlusGA I32:$addr,
246 def : Pat<(i64 (zextloadi8 (regPlusGA I32:$addr,
249 def : Pat<(i64 (sextloadi16 (regPlusGA I32:$addr,
252 def : Pat<(i64 (zextloadi16 (regPlusGA I32:$addr,
255 def : Pat<(i64 (sextloadi32 (regPlusGA I32:$addr,
258 def : Pat<(i64 (zextloadi32 (regPlusGA I32:$addr,
261 def : Pat<(i32 (sextloadi8 (add I32:$addr,
264 def : Pat<(i32 (zextloadi8 (add I32:$addr,
267 def : Pat<(i32 (sextloadi16 (add I32:$addr,
270 def : Pat<(i32 (zextloadi16 (add I32:$addr,
273 def : Pat<(i64 (sextloadi8 (add I32:$addr,
276 def : Pat<(i64 (zextloadi8 (add I32:$addr,
279 def : Pat<(i64 (sextloadi16 (add I32:$addr,
282 def : Pat<(i64 (zextloadi16 (add I32:$addr,
285 def : Pat<(i64 (sextloadi32 (add I32:$addr,
288 def : Pat<(i64 (zextloadi32 (add I32:$addr,
358 def : Pat<(i32 (extloadi8 I32:$addr)), (LOAD8_U_I32 0, $addr, 0)>;
359 def : Pat<(i32 (extloadi16 I32:$addr)), (LOAD16_U_I32 0, $addr, 0)>;
360 def : Pat<(i64 (extloadi8 I32:$addr)), (LOAD8_U_I64 0, $addr, 0)>;
361 def : Pat<(i64 (extloadi16 I32:$addr)), (LOAD16_U_I64 0, $addr, 0)>;
362 def : Pat<(i64 (extloadi32 I32:$addr)), (LOAD32_U_I64 0, $addr, 0)>;
365 def : Pat<(i32 (extloadi8 (regPlusImm I32:$addr, imm:$off))),
367 def : Pat<(i32 (extloadi16 (regPlusImm I32:$addr, imm:$off))),
369 def : Pat<(i64 (extloadi8 (regPlusImm I32:$addr, imm:$off))),
371 def : Pat<(i64 (extloadi16 (regPlusImm I32:$addr, imm:$off))),
373 def : Pat<(i64 (extloadi32 (regPlusImm I32:$addr, imm:$off))),
375 def : Pat<(i32 (extloadi8 (or_is_add I32:$addr, imm:$off))),
377 def : Pat<(i32 (extloadi16 (or_is_add I32:$addr, imm:$off))),
379 def : Pat<(i64 (extloadi8 (or_is_add I32:$addr, imm:$off))),
381 def : Pat<(i64 (extloadi16 (or_is_add I32:$addr, imm:$off))),
383 def : Pat<(i64 (extloadi32 (or_is_add I32:$addr, imm:$off))),
385 def : Pat<(i32 (extloadi8 (regPlusGA I32:$addr,
388 def : Pat<(i32 (extloadi16 (regPlusGA I32:$addr,
391 def : Pat<(i64 (extloadi8 (regPlusGA I32:$addr,
394 def : Pat<(i64 (extloadi16 (regPlusGA I32:$addr,
397 def : Pat<(i64 (extloadi32 (regPlusGA I32:$addr,
400 def : Pat<(i32 (extloadi8 (add I32:$addr,
403 def : Pat<(i32 (extloadi16 (add I32:$addr,
406 def : Pat<(i64 (extloadi8 (add I32:$addr,
409 def : Pat<(i64 (extloadi16 (add I32:$addr,
412 def : Pat<(i64 (extloadi32 (add I32:$addr,
456 def STORE_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
457 P2Align:$p2align, I32:$val), [],
459 def STORE_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
462 def STORE_F32 : I<(outs F32:$dst), (ins i32imm:$off, I32:$addr,
465 def STORE_F64 : I<(outs F64:$dst), (ins i32imm:$off, I32:$addr,
472 def : Pat<(store I32:$val, I32:$addr), (STORE_I32 0, I32:$addr, 0, I32:$val)>;
473 def : Pat<(store I64:$val, I32:$addr), (STORE_I64 0, I32:$addr, 0, I64:$val)>;
474 def : Pat<(store F32:$val, I32:$addr), (STORE_F32 0, I32:$addr, 0, F32:$val)>;
475 def : Pat<(store F64:$val, I32:$addr), (STORE_F64 0, I32:$addr, 0, F64:$val)>;
478 def : Pat<(store I32:$val, (regPlusImm I32:$addr, imm:$off)),
479 (STORE_I32 imm:$off, I32:$addr, 0, I32:$val)>;
480 def : Pat<(store I64:$val, (regPlusImm I32:$addr, imm:$off)),
481 (STORE_I64 imm:$off, I32:$addr, 0, I64:$val)>;
482 def : Pat<(store F32:$val, (regPlusImm I32:$addr, imm:$off)),
483 (STORE_F32 imm:$off, I32:$addr, 0, F32:$val)>;
484 def : Pat<(store F64:$val, (regPlusImm I32:$addr, imm:$off)),
485 (STORE_F64 imm:$off, I32:$addr, 0, F64:$val)>;
486 def : Pat<(store I32:$val, (or_is_add I32:$addr, imm:$off)),
487 (STORE_I32 imm:$off, I32:$addr, 0, I32:$val)>;
488 def : Pat<(store I64:$val, (or_is_add I32:$addr, imm:$off)),
489 (STORE_I64 imm:$off, I32:$addr, 0, I64:$val)>;
490 def : Pat<(store F32:$val, (or_is_add I32:$addr, imm:$off)),
491 (STORE_F32 imm:$off, I32:$addr, 0, F32:$val)>;
492 def : Pat<(store F64:$val, (or_is_add I32:$addr, imm:$off)),
493 (STORE_F64 imm:$off, I32:$addr, 0, F64:$val)>;
494 def : Pat<(store I32:$val, (regPlusGA I32:$addr,
496 (STORE_I32 tglobaladdr:$off, I32:$addr, 0, I32:$val)>;
497 def : Pat<(store I64:$val, (regPlusGA I32:$addr,
499 (STORE_I64 tglobaladdr:$off, I32:$addr, 0, I64:$val)>;
500 def : Pat<(store F32:$val, (regPlusGA I32:$addr,
502 (STORE_F32 tglobaladdr:$off, I32:$addr, 0, F32:$val)>;
503 def : Pat<(store F64:$val, (regPlusGA I32:$addr,
505 (STORE_F64 tglobaladdr:$off, I32:$addr, 0, F64:$val)>;
506 def : Pat<(store I32:$val, (add I32:$addr,
508 (STORE_I32 texternalsym:$off, I32:$addr, 0, I32:$val)>;
509 def : Pat<(store I64:$val, (add I32:$addr,
511 (STORE_I64 texternalsym:$off, I32:$addr, 0, I64:$val)>;
512 def : Pat<(store F32:$val, (add I32:$addr,
514 (STORE_F32 texternalsym:$off, I32:$addr, 0, F32:$val)>;
515 def : Pat<(store F64:$val, (add I32:$addr,
517 (STORE_F64 texternalsym:$off, I32:$addr, 0, F64:$val)>;
520 def : Pat<(store I32:$val, imm:$off),
521 (STORE_I32 imm:$off, (CONST_I32 0), 0, I32:$val)>;
528 def : Pat<(store I32:$val, (WebAssemblywrapper tglobaladdr:$off)),
529 (STORE_I32 tglobaladdr:$off, (CONST_I32 0), 0, I32:$val)>;
536 def : Pat<(store I32:$val, (WebAssemblywrapper texternalsym:$off)),
537 (STORE_I32 texternalsym:$off, (CONST_I32 0), 0, I32:$val)>;
548 def STORE8_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
549 P2Align:$p2align, I32:$val), [],
551 def STORE16_I32 : I<(outs I32:$dst), (ins i32imm:$off, I32:$addr,
552 P2Align:$p2align, I32:$val), [],
554 def STORE8_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
557 def STORE16_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
560 def STORE32_I64 : I<(outs I64:$dst), (ins i32imm:$off, I32:$addr,
567 def : Pat<(truncstorei8 I32:$val, I32:$addr),
568 (STORE8_I32 0, I32:$addr, 0, I32:$val)>;
569 def : Pat<(truncstorei16 I32:$val, I32:$addr),
570 (STORE16_I32 0, I32:$addr, 0, I32:$val)>;
571 def : Pat<(truncstorei8 I64:$val, I32:$addr),
572 (STORE8_I64 0, I32:$addr, 0, I64:$val)>;
573 def : Pat<(truncstorei16 I64:$val, I32:$addr),
574 (STORE16_I64 0, I32:$addr, 0, I64:$val)>;
575 def : Pat<(truncstorei32 I64:$val, I32:$addr),
576 (STORE32_I64 0, I32:$addr, 0, I64:$val)>;
579 def : Pat<(truncstorei8 I32:$val, (regPlusImm I32:$addr, imm:$off)),
580 (STORE8_I32 imm:$off, I32:$addr, 0, I32:$val)>;
581 def : Pat<(truncstorei16 I32:$val, (regPlusImm I32:$addr, imm:$off)),
582 (STORE16_I32 imm:$off, I32:$addr, 0, I32:$val)>;
583 def : Pat<(truncstorei8 I64:$val, (regPlusImm I32:$addr, imm:$off)),
584 (STORE8_I64 imm:$off, I32:$addr, 0, I64:$val)>;
585 def : Pat<(truncstorei16 I64:$val, (regPlusImm I32:$addr, imm:$off)),
586 (STORE16_I64 imm:$off, I32:$addr, 0, I64:$val)>;
587 def : Pat<(truncstorei32 I64:$val, (regPlusImm I32:$addr, imm:$off)),
588 (STORE32_I64 imm:$off, I32:$addr, 0, I64:$val)>;
589 def : Pat<(truncstorei8 I32:$val, (or_is_add I32:$addr, imm:$off)),
590 (STORE8_I32 imm:$off, I32:$addr, 0, I32:$val)>;
591 def : Pat<(truncstorei16 I32:$val, (or_is_add I32:$addr, imm:$off)),
592 (STORE16_I32 imm:$off, I32:$addr, 0, I32:$val)>;
593 def : Pat<(truncstorei8 I64:$val, (or_is_add I32:$addr, imm:$off)),
594 (STORE8_I64 imm:$off, I32:$addr, 0, I64:$val)>;
595 def : Pat<(truncstorei16 I64:$val, (or_is_add I32:$addr, imm:$off)),
596 (STORE16_I64 imm:$off, I32:$addr, 0, I64:$val)>;
597 def : Pat<(truncstorei32 I64:$val, (or_is_add I32:$addr, imm:$off)),
598 (STORE32_I64 imm:$off, I32:$addr, 0, I64:$val)>;
599 def : Pat<(truncstorei8 I32:$val,
600 (regPlusGA I32:$addr,
602 (STORE8_I32 tglobaladdr:$off, I32:$addr, 0, I32:$val)>;
603 def : Pat<(truncstorei16 I32:$val,
604 (regPlusGA I32:$addr,
606 (STORE16_I32 tglobaladdr:$off, I32:$addr, 0, I32:$val)>;
608 (regPlusGA I32:$addr,
610 (STORE8_I64 tglobaladdr:$off, I32:$addr, 0, I64:$val)>;
612 (regPlusGA I32:$addr,
614 (STORE16_I64 tglobaladdr:$off, I32:$addr, 0, I64:$val)>;
616 (regPlusGA I32:$addr,
618 (STORE32_I64 tglobaladdr:$off, I32:$addr, 0, I64:$val)>;
619 def : Pat<(truncstorei8 I32:$val, (add I32:$addr,
621 (STORE8_I32 texternalsym:$off, I32:$addr, 0, I32:$val)>;
622 def : Pat<(truncstorei16 I32:$val,
623 (add I32:$addr,
625 (STORE16_I32 texternalsym:$off, I32:$addr, 0, I32:$val)>;
627 (add I32:$addr,
629 (STORE8_I64 texternalsym:$off, I32:$addr, 0, I64:$val)>;
631 (add I32:$addr,
633 (STORE16_I64 texternalsym:$off, I32:$addr, 0, I64:$val)>;
635 (add I32:$addr,
637 (STORE32_I64 texternalsym:$off, I32:$addr, 0, I64:$val)>;
640 def : Pat<(truncstorei8 I32:$val, imm:$off),
641 (STORE8_I32 imm:$off, (CONST_I32 0), 0, I32:$val)>;
642 def : Pat<(truncstorei16 I32:$val, imm:$off),
643 (STORE16_I32 imm:$off, (CONST_I32 0), 0, I32:$val)>;
650 def : Pat<(truncstorei8 I32:$val, (WebAssemblywrapper tglobaladdr:$off)),
651 (STORE8_I32 tglobaladdr:$off, (CONST_I32 0), 0, I32:$val)>;
652 def : Pat<(truncstorei16 I32:$val, (WebAssemblywrapper tglobaladdr:$off)),
653 (STORE16_I32 tglobaladdr:$off, (CONST_I32 0), 0, I32:$val)>;
660 def : Pat<(truncstorei8 I32:$val, (WebAssemblywrapper texternalsym:$off)),
661 (STORE8_I32 texternalsym:$off, (CONST_I32 0), 0, I32:$val)>;
662 def : Pat<(truncstorei16 I32:$val, (WebAssemblywrapper texternalsym:$off)),
663 (STORE16_I32 texternalsym:$off, (CONST_I32 0), 0, I32:$val)>;
674 def CURRENT_MEMORY_I32 : I<(outs I32:$dst), (ins),
675 [(set I32:$dst, (int_wasm_current_memory))],
684 def GROW_MEMORY_I32 : I<(outs), (ins I32:$delta),
685 [(int_wasm_grow_memory I32:$delta)],