@@ -397,87 +397,44 @@ define void @masked_store_v32i32(ptr %val_ptr, ptr %a, ptr %m_ptr) nounwind {
397
397
declare void @llvm.masked.store.v32i32.p0 (<32 x i32 >, ptr , i32 , <32 x i1 >)
398
398
399
399
define void @masked_store_v32i64 (ptr %val_ptr , ptr %a , ptr %m_ptr ) nounwind {
400
- ; RV32-LABEL: masked_store_v32i64:
401
- ; RV32: # %bb.0:
402
- ; RV32-NEXT: addi sp, sp, -16
403
- ; RV32-NEXT: csrr a3, vlenb
404
- ; RV32-NEXT: slli a3, a3, 4
405
- ; RV32-NEXT: sub sp, sp, a3
406
- ; RV32-NEXT: addi a3, a2, 128
407
- ; RV32-NEXT: vsetivli zero, 16, e64, m8, ta, ma
408
- ; RV32-NEXT: vle64.v v24, (a2)
409
- ; RV32-NEXT: vle64.v v8, (a3)
410
- ; RV32-NEXT: csrr a2, vlenb
411
- ; RV32-NEXT: slli a2, a2, 3
412
- ; RV32-NEXT: add a2, sp, a2
413
- ; RV32-NEXT: addi a2, a2, 16
414
- ; RV32-NEXT: vs8r.v v8, (a2) # Unknown-size Folded Spill
415
- ; RV32-NEXT: li a2, 32
416
- ; RV32-NEXT: vsetvli zero, a2, e32, m8, ta, ma
417
- ; RV32-NEXT: vmv.v.i v8, 0
418
- ; RV32-NEXT: vsetivli zero, 16, e64, m8, ta, ma
419
- ; RV32-NEXT: vmseq.vv v7, v24, v8
420
- ; RV32-NEXT: addi a2, a0, 128
421
- ; RV32-NEXT: vle64.v v24, (a2)
422
- ; RV32-NEXT: vle64.v v16, (a0)
423
- ; RV32-NEXT: addi a0, sp, 16
424
- ; RV32-NEXT: vs8r.v v16, (a0) # Unknown-size Folded Spill
425
- ; RV32-NEXT: csrr a0, vlenb
426
- ; RV32-NEXT: slli a0, a0, 3
427
- ; RV32-NEXT: add a0, sp, a0
428
- ; RV32-NEXT: addi a0, a0, 16
429
- ; RV32-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload
430
- ; RV32-NEXT: vmseq.vv v0, v16, v8
431
- ; RV32-NEXT: addi a0, a1, 128
432
- ; RV32-NEXT: vse64.v v24, (a0), v0.t
433
- ; RV32-NEXT: vmv1r.v v0, v7
434
- ; RV32-NEXT: addi a0, sp, 16
435
- ; RV32-NEXT: vl8r.v v8, (a0) # Unknown-size Folded Reload
436
- ; RV32-NEXT: vse64.v v8, (a1), v0.t
437
- ; RV32-NEXT: csrr a0, vlenb
438
- ; RV32-NEXT: slli a0, a0, 4
439
- ; RV32-NEXT: add sp, sp, a0
440
- ; RV32-NEXT: addi sp, sp, 16
441
- ; RV32-NEXT: ret
442
- ;
443
- ; RV64-LABEL: masked_store_v32i64:
444
- ; RV64: # %bb.0:
445
- ; RV64-NEXT: addi sp, sp, -16
446
- ; RV64-NEXT: csrr a3, vlenb
447
- ; RV64-NEXT: slli a3, a3, 4
448
- ; RV64-NEXT: sub sp, sp, a3
449
- ; RV64-NEXT: vsetivli zero, 16, e64, m8, ta, ma
450
- ; RV64-NEXT: vle64.v v8, (a2)
451
- ; RV64-NEXT: addi a2, a2, 128
452
- ; RV64-NEXT: vle64.v v16, (a2)
453
- ; RV64-NEXT: csrr a2, vlenb
454
- ; RV64-NEXT: slli a2, a2, 3
455
- ; RV64-NEXT: add a2, sp, a2
456
- ; RV64-NEXT: addi a2, a2, 16
457
- ; RV64-NEXT: vs8r.v v16, (a2) # Unknown-size Folded Spill
458
- ; RV64-NEXT: vmseq.vi v0, v8, 0
459
- ; RV64-NEXT: vle64.v v24, (a0)
460
- ; RV64-NEXT: addi a0, a0, 128
461
- ; RV64-NEXT: vle64.v v8, (a0)
462
- ; RV64-NEXT: addi a0, sp, 16
463
- ; RV64-NEXT: vs8r.v v8, (a0) # Unknown-size Folded Spill
464
- ; RV64-NEXT: csrr a0, vlenb
465
- ; RV64-NEXT: slli a0, a0, 3
466
- ; RV64-NEXT: add a0, sp, a0
467
- ; RV64-NEXT: addi a0, a0, 16
468
- ; RV64-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload
469
- ; RV64-NEXT: vmseq.vi v8, v16, 0
470
- ; RV64-NEXT: vse64.v v24, (a1), v0.t
471
- ; RV64-NEXT: addi a0, a1, 128
472
- ; RV64-NEXT: vmv1r.v v0, v8
473
- ; RV64-NEXT: addi a1, sp, 16
474
- ; RV64-NEXT: vl8r.v v8, (a1) # Unknown-size Folded Reload
475
- ; RV64-NEXT: vse64.v v8, (a0), v0.t
476
- ; RV64-NEXT: csrr a0, vlenb
477
- ; RV64-NEXT: slli a0, a0, 4
478
- ; RV64-NEXT: add sp, sp, a0
479
- ; RV64-NEXT: addi sp, sp, 16
480
- ; RV64-NEXT: ret
400
+ ; CHECK-LABEL: masked_store_v32i64:
401
+ ; CHECK: # %bb.0:
402
+ ; CHECK-NEXT: addi sp, sp, -16
403
+ ; CHECK-NEXT: csrr a3, vlenb
404
+ ; CHECK-NEXT: slli a3, a3, 4
405
+ ; CHECK-NEXT: sub sp, sp, a3
406
+ ; CHECK-NEXT: vsetivli zero, 16, e64, m8, ta, ma
407
+ ; CHECK-NEXT: vle64.v v8, (a2)
408
+ ; CHECK-NEXT: addi a2, a2, 128
409
+ ; CHECK-NEXT: vle64.v v16, (a2)
410
+ ; CHECK-NEXT: csrr a2, vlenb
411
+ ; CHECK-NEXT: slli a2, a2, 3
412
+ ; CHECK-NEXT: add a2, sp, a2
413
+ ; CHECK-NEXT: addi a2, a2, 16
414
+ ; CHECK-NEXT: vs8r.v v16, (a2) # Unknown-size Folded Spill
415
+ ; CHECK-NEXT: vmseq.vi v0, v8, 0
416
+ ; CHECK-NEXT: vle64.v v24, (a0)
417
+ ; CHECK-NEXT: addi a0, a0, 128
418
+ ; CHECK-NEXT: vle64.v v8, (a0)
419
+ ; CHECK-NEXT: addi a0, sp, 16
420
+ ; CHECK-NEXT: vs8r.v v8, (a0) # Unknown-size Folded Spill
421
+ ; CHECK-NEXT: csrr a0, vlenb
422
+ ; CHECK-NEXT: slli a0, a0, 3
423
+ ; CHECK-NEXT: add a0, sp, a0
424
+ ; CHECK-NEXT: addi a0, a0, 16
425
+ ; CHECK-NEXT: vl8r.v v16, (a0) # Unknown-size Folded Reload
426
+ ; CHECK-NEXT: vmseq.vi v8, v16, 0
427
+ ; CHECK-NEXT: vse64.v v24, (a1), v0.t
428
+ ; CHECK-NEXT: addi a0, a1, 128
429
+ ; CHECK-NEXT: vmv1r.v v0, v8
430
+ ; CHECK-NEXT: addi a1, sp, 16
431
+ ; CHECK-NEXT: vl8r.v v8, (a1) # Unknown-size Folded Reload
432
+ ; CHECK-NEXT: vse64.v v8, (a0), v0.t
433
+ ; CHECK-NEXT: csrr a0, vlenb
434
+ ; CHECK-NEXT: slli a0, a0, 4
435
+ ; CHECK-NEXT: add sp, sp, a0
436
+ ; CHECK-NEXT: addi sp, sp, 16
437
+ ; CHECK-NEXT: ret
481
438
%m = load <32 x i64 >, ptr %m_ptr
482
439
%mask = icmp eq <32 x i64 > %m , zeroinitializer
483
440
%val = load <32 x i64 >, ptr %val_ptr
@@ -683,3 +640,6 @@ define void @masked_store_v256i8(ptr %val_ptr, ptr %a, ptr %m_ptr) nounwind {
683
640
ret void
684
641
}
685
642
declare void @llvm.masked.store.v256i8.p0 (<256 x i8 >, ptr , i32 , <256 x i1 >)
643
+ ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
644
+ ; RV32: {{.*}}
645
+ ; RV64: {{.*}}
0 commit comments