@@ -13294,22 +13294,96 @@ define <4 x i32> @mgather_unit_stride_load_wide_idx(ptr %base) {
13294
13294
ret <4 x i32> %v
13295
13295
}
13296
13296
13297
+ ; This looks like a strided load (at i8), but isn't at index type.
13298
+ define <4 x i32> @mgather_narrow_edge_case(ptr %base) {
13299
+ ; RV32-LABEL: mgather_narrow_edge_case:
13300
+ ; RV32: # %bb.0:
13301
+ ; RV32-NEXT: li a1, -512
13302
+ ; RV32-NEXT: vsetivli zero, 4, e32, m1, ta, ma
13303
+ ; RV32-NEXT: vmv.v.i v0, 5
13304
+ ; RV32-NEXT: vmv.v.x v8, a1
13305
+ ; RV32-NEXT: vmerge.vim v8, v8, 0, v0
13306
+ ; RV32-NEXT: vluxei32.v v8, (a0), v8
13307
+ ; RV32-NEXT: ret
13308
+ ;
13309
+ ; RV64V-LABEL: mgather_narrow_edge_case:
13310
+ ; RV64V: # %bb.0:
13311
+ ; RV64V-NEXT: li a1, -512
13312
+ ; RV64V-NEXT: vsetivli zero, 4, e64, m2, ta, ma
13313
+ ; RV64V-NEXT: vmv.v.x v8, a1
13314
+ ; RV64V-NEXT: vsetivli zero, 1, e8, mf8, ta, ma
13315
+ ; RV64V-NEXT: vmv.v.i v0, 5
13316
+ ; RV64V-NEXT: vsetivli zero, 4, e64, m2, ta, ma
13317
+ ; RV64V-NEXT: vmerge.vim v10, v8, 0, v0
13318
+ ; RV64V-NEXT: vsetvli zero, zero, e32, m1, ta, ma
13319
+ ; RV64V-NEXT: vluxei64.v v8, (a0), v10
13320
+ ; RV64V-NEXT: ret
13321
+ ;
13322
+ ; RV64ZVE32F-LABEL: mgather_narrow_edge_case:
13323
+ ; RV64ZVE32F: # %bb.0:
13324
+ ; RV64ZVE32F-NEXT: vsetivli zero, 8, e8, mf2, ta, ma
13325
+ ; RV64ZVE32F-NEXT: vmset.m v8
13326
+ ; RV64ZVE32F-NEXT: vmv.x.s a1, v8
13327
+ ; RV64ZVE32F-NEXT: # implicit-def: $v8
13328
+ ; RV64ZVE32F-NEXT: bnez zero, .LBB106_2
13329
+ ; RV64ZVE32F-NEXT: # %bb.1: # %cond.load
13330
+ ; RV64ZVE32F-NEXT: vsetivli zero, 4, e32, m1, ta, ma
13331
+ ; RV64ZVE32F-NEXT: vlse32.v v8, (a0), zero
13332
+ ; RV64ZVE32F-NEXT: .LBB106_2: # %else
13333
+ ; RV64ZVE32F-NEXT: andi a3, a1, 2
13334
+ ; RV64ZVE32F-NEXT: addi a2, a0, -512
13335
+ ; RV64ZVE32F-NEXT: bnez a3, .LBB106_6
13336
+ ; RV64ZVE32F-NEXT: # %bb.3: # %else2
13337
+ ; RV64ZVE32F-NEXT: andi a3, a1, 4
13338
+ ; RV64ZVE32F-NEXT: bnez a3, .LBB106_7
13339
+ ; RV64ZVE32F-NEXT: .LBB106_4: # %else5
13340
+ ; RV64ZVE32F-NEXT: andi a1, a1, 8
13341
+ ; RV64ZVE32F-NEXT: bnez a1, .LBB106_8
13342
+ ; RV64ZVE32F-NEXT: .LBB106_5: # %else8
13343
+ ; RV64ZVE32F-NEXT: ret
13344
+ ; RV64ZVE32F-NEXT: .LBB106_6: # %cond.load1
13345
+ ; RV64ZVE32F-NEXT: lw a3, 0(a2)
13346
+ ; RV64ZVE32F-NEXT: vsetivli zero, 2, e32, m1, tu, ma
13347
+ ; RV64ZVE32F-NEXT: vmv.s.x v9, a3
13348
+ ; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 1
13349
+ ; RV64ZVE32F-NEXT: andi a3, a1, 4
13350
+ ; RV64ZVE32F-NEXT: beqz a3, .LBB106_4
13351
+ ; RV64ZVE32F-NEXT: .LBB106_7: # %cond.load4
13352
+ ; RV64ZVE32F-NEXT: lw a0, 0(a0)
13353
+ ; RV64ZVE32F-NEXT: vsetivli zero, 3, e32, m1, tu, ma
13354
+ ; RV64ZVE32F-NEXT: vmv.s.x v9, a0
13355
+ ; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 2
13356
+ ; RV64ZVE32F-NEXT: andi a1, a1, 8
13357
+ ; RV64ZVE32F-NEXT: beqz a1, .LBB106_5
13358
+ ; RV64ZVE32F-NEXT: .LBB106_8: # %cond.load7
13359
+ ; RV64ZVE32F-NEXT: lw a0, 0(a2)
13360
+ ; RV64ZVE32F-NEXT: vsetivli zero, 4, e32, m1, ta, ma
13361
+ ; RV64ZVE32F-NEXT: vmv.s.x v9, a0
13362
+ ; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 3
13363
+ ; RV64ZVE32F-NEXT: ret
13364
+ %head = insertelement <4 x i1> poison, i1 true, i32 0
13365
+ %allones = shufflevector <4 x i1> %head, <4 x i1> poison, <4 x i32> zeroinitializer
13366
+ %ptrs = getelementptr inbounds i32, ptr %base, <4 x i8> <i8 0, i8 128, i8 0, i8 128>
13367
+ %v = call <4 x i32> @llvm.masked.gather.v4i32.v4p0(<4 x ptr> %ptrs, i32 4, <4 x i1> %allones, <4 x i32> poison)
13368
+ ret <4 x i32> %v
13369
+ }
13370
+
13297
13371
13298
13372
; TODO: Recognize as strided load with SEW=32
13299
13373
define <8 x i16> @mgather_strided_2xSEW(ptr %base) {
13300
13374
; RV32-LABEL: mgather_strided_2xSEW:
13301
13375
; RV32: # %bb.0:
13302
- ; RV32-NEXT: lui a1, %hi(.LCPI106_0 )
13303
- ; RV32-NEXT: addi a1, a1, %lo(.LCPI106_0 )
13376
+ ; RV32-NEXT: lui a1, %hi(.LCPI107_0 )
13377
+ ; RV32-NEXT: addi a1, a1, %lo(.LCPI107_0 )
13304
13378
; RV32-NEXT: vsetivli zero, 8, e16, m1, ta, ma
13305
13379
; RV32-NEXT: vle32.v v10, (a1)
13306
13380
; RV32-NEXT: vluxei32.v v8, (a0), v10
13307
13381
; RV32-NEXT: ret
13308
13382
;
13309
13383
; RV64V-LABEL: mgather_strided_2xSEW:
13310
13384
; RV64V: # %bb.0:
13311
- ; RV64V-NEXT: lui a1, %hi(.LCPI106_0 )
13312
- ; RV64V-NEXT: addi a1, a1, %lo(.LCPI106_0 )
13385
+ ; RV64V-NEXT: lui a1, %hi(.LCPI107_0 )
13386
+ ; RV64V-NEXT: addi a1, a1, %lo(.LCPI107_0 )
13313
13387
; RV64V-NEXT: vsetivli zero, 8, e16, m1, ta, ma
13314
13388
; RV64V-NEXT: vle64.v v12, (a1)
13315
13389
; RV64V-NEXT: vluxei64.v v8, (a0), v12
@@ -13321,84 +13395,84 @@ define <8 x i16> @mgather_strided_2xSEW(ptr %base) {
13321
13395
; RV64ZVE32F-NEXT: vmset.m v8
13322
13396
; RV64ZVE32F-NEXT: vmv.x.s a1, v8
13323
13397
; RV64ZVE32F-NEXT: # implicit-def: $v8
13324
- ; RV64ZVE32F-NEXT: beqz zero, .LBB106_9
13398
+ ; RV64ZVE32F-NEXT: beqz zero, .LBB107_9
13325
13399
; RV64ZVE32F-NEXT: # %bb.1: # %else
13326
13400
; RV64ZVE32F-NEXT: andi a2, a1, 2
13327
- ; RV64ZVE32F-NEXT: bnez a2, .LBB106_10
13328
- ; RV64ZVE32F-NEXT: .LBB106_2 : # %else2
13401
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB107_10
13402
+ ; RV64ZVE32F-NEXT: .LBB107_2 : # %else2
13329
13403
; RV64ZVE32F-NEXT: andi a2, a1, 4
13330
- ; RV64ZVE32F-NEXT: bnez a2, .LBB106_11
13331
- ; RV64ZVE32F-NEXT: .LBB106_3 : # %else5
13404
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB107_11
13405
+ ; RV64ZVE32F-NEXT: .LBB107_3 : # %else5
13332
13406
; RV64ZVE32F-NEXT: andi a2, a1, 8
13333
- ; RV64ZVE32F-NEXT: bnez a2, .LBB106_12
13334
- ; RV64ZVE32F-NEXT: .LBB106_4 : # %else8
13407
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB107_12
13408
+ ; RV64ZVE32F-NEXT: .LBB107_4 : # %else8
13335
13409
; RV64ZVE32F-NEXT: andi a2, a1, 16
13336
- ; RV64ZVE32F-NEXT: bnez a2, .LBB106_13
13337
- ; RV64ZVE32F-NEXT: .LBB106_5 : # %else11
13410
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB107_13
13411
+ ; RV64ZVE32F-NEXT: .LBB107_5 : # %else11
13338
13412
; RV64ZVE32F-NEXT: andi a2, a1, 32
13339
- ; RV64ZVE32F-NEXT: bnez a2, .LBB106_14
13340
- ; RV64ZVE32F-NEXT: .LBB106_6 : # %else14
13413
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB107_14
13414
+ ; RV64ZVE32F-NEXT: .LBB107_6 : # %else14
13341
13415
; RV64ZVE32F-NEXT: andi a2, a1, 64
13342
- ; RV64ZVE32F-NEXT: bnez a2, .LBB106_15
13343
- ; RV64ZVE32F-NEXT: .LBB106_7 : # %else17
13416
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB107_15
13417
+ ; RV64ZVE32F-NEXT: .LBB107_7 : # %else17
13344
13418
; RV64ZVE32F-NEXT: andi a1, a1, -128
13345
- ; RV64ZVE32F-NEXT: bnez a1, .LBB106_16
13346
- ; RV64ZVE32F-NEXT: .LBB106_8 : # %else20
13419
+ ; RV64ZVE32F-NEXT: bnez a1, .LBB107_16
13420
+ ; RV64ZVE32F-NEXT: .LBB107_8 : # %else20
13347
13421
; RV64ZVE32F-NEXT: ret
13348
- ; RV64ZVE32F-NEXT: .LBB106_9 : # %cond.load
13422
+ ; RV64ZVE32F-NEXT: .LBB107_9 : # %cond.load
13349
13423
; RV64ZVE32F-NEXT: vlse16.v v8, (a0), zero
13350
13424
; RV64ZVE32F-NEXT: andi a2, a1, 2
13351
- ; RV64ZVE32F-NEXT: beqz a2, .LBB106_2
13352
- ; RV64ZVE32F-NEXT: .LBB106_10 : # %cond.load1
13425
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB107_2
13426
+ ; RV64ZVE32F-NEXT: .LBB107_10 : # %cond.load1
13353
13427
; RV64ZVE32F-NEXT: addi a2, a0, 2
13354
13428
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13355
13429
; RV64ZVE32F-NEXT: vsetvli zero, zero, e16, m1, ta, ma
13356
13430
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13357
13431
; RV64ZVE32F-NEXT: vsetivli zero, 2, e16, m1, tu, ma
13358
13432
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 1
13359
13433
; RV64ZVE32F-NEXT: andi a2, a1, 4
13360
- ; RV64ZVE32F-NEXT: beqz a2, .LBB106_3
13361
- ; RV64ZVE32F-NEXT: .LBB106_11 : # %cond.load4
13434
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB107_3
13435
+ ; RV64ZVE32F-NEXT: .LBB107_11 : # %cond.load4
13362
13436
; RV64ZVE32F-NEXT: addi a2, a0, 8
13363
13437
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13364
13438
; RV64ZVE32F-NEXT: vsetivli zero, 3, e16, m1, tu, ma
13365
13439
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13366
13440
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 2
13367
13441
; RV64ZVE32F-NEXT: andi a2, a1, 8
13368
- ; RV64ZVE32F-NEXT: beqz a2, .LBB106_4
13369
- ; RV64ZVE32F-NEXT: .LBB106_12 : # %cond.load7
13442
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB107_4
13443
+ ; RV64ZVE32F-NEXT: .LBB107_12 : # %cond.load7
13370
13444
; RV64ZVE32F-NEXT: addi a2, a0, 10
13371
13445
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13372
13446
; RV64ZVE32F-NEXT: vsetivli zero, 4, e16, m1, tu, ma
13373
13447
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13374
13448
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 3
13375
13449
; RV64ZVE32F-NEXT: andi a2, a1, 16
13376
- ; RV64ZVE32F-NEXT: beqz a2, .LBB106_5
13377
- ; RV64ZVE32F-NEXT: .LBB106_13 : # %cond.load10
13450
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB107_5
13451
+ ; RV64ZVE32F-NEXT: .LBB107_13 : # %cond.load10
13378
13452
; RV64ZVE32F-NEXT: addi a2, a0, 16
13379
13453
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13380
13454
; RV64ZVE32F-NEXT: vsetivli zero, 5, e16, m1, tu, ma
13381
13455
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13382
13456
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 4
13383
13457
; RV64ZVE32F-NEXT: andi a2, a1, 32
13384
- ; RV64ZVE32F-NEXT: beqz a2, .LBB106_6
13385
- ; RV64ZVE32F-NEXT: .LBB106_14 : # %cond.load13
13458
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB107_6
13459
+ ; RV64ZVE32F-NEXT: .LBB107_14 : # %cond.load13
13386
13460
; RV64ZVE32F-NEXT: addi a2, a0, 18
13387
13461
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13388
13462
; RV64ZVE32F-NEXT: vsetivli zero, 6, e16, m1, tu, ma
13389
13463
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13390
13464
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 5
13391
13465
; RV64ZVE32F-NEXT: andi a2, a1, 64
13392
- ; RV64ZVE32F-NEXT: beqz a2, .LBB106_7
13393
- ; RV64ZVE32F-NEXT: .LBB106_15 : # %cond.load16
13466
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB107_7
13467
+ ; RV64ZVE32F-NEXT: .LBB107_15 : # %cond.load16
13394
13468
; RV64ZVE32F-NEXT: addi a2, a0, 24
13395
13469
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13396
13470
; RV64ZVE32F-NEXT: vsetivli zero, 7, e16, m1, tu, ma
13397
13471
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13398
13472
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 6
13399
13473
; RV64ZVE32F-NEXT: andi a1, a1, -128
13400
- ; RV64ZVE32F-NEXT: beqz a1, .LBB106_8
13401
- ; RV64ZVE32F-NEXT: .LBB106_16 : # %cond.load19
13474
+ ; RV64ZVE32F-NEXT: beqz a1, .LBB107_8
13475
+ ; RV64ZVE32F-NEXT: .LBB107_16 : # %cond.load19
13402
13476
; RV64ZVE32F-NEXT: addi a0, a0, 26
13403
13477
; RV64ZVE32F-NEXT: lh a0, 0(a0)
13404
13478
; RV64ZVE32F-NEXT: vsetivli zero, 8, e16, m1, ta, ma
@@ -13416,17 +13490,17 @@ define <8 x i16> @mgather_strided_2xSEW(ptr %base) {
13416
13490
define <8 x i16> @mgather_gather_2xSEW(ptr %base) {
13417
13491
; RV32-LABEL: mgather_gather_2xSEW:
13418
13492
; RV32: # %bb.0:
13419
- ; RV32-NEXT: lui a1, %hi(.LCPI107_0 )
13420
- ; RV32-NEXT: addi a1, a1, %lo(.LCPI107_0 )
13493
+ ; RV32-NEXT: lui a1, %hi(.LCPI108_0 )
13494
+ ; RV32-NEXT: addi a1, a1, %lo(.LCPI108_0 )
13421
13495
; RV32-NEXT: vsetivli zero, 8, e16, m1, ta, ma
13422
13496
; RV32-NEXT: vle32.v v10, (a1)
13423
13497
; RV32-NEXT: vluxei32.v v8, (a0), v10
13424
13498
; RV32-NEXT: ret
13425
13499
;
13426
13500
; RV64V-LABEL: mgather_gather_2xSEW:
13427
13501
; RV64V: # %bb.0:
13428
- ; RV64V-NEXT: lui a1, %hi(.LCPI107_0 )
13429
- ; RV64V-NEXT: addi a1, a1, %lo(.LCPI107_0 )
13502
+ ; RV64V-NEXT: lui a1, %hi(.LCPI108_0 )
13503
+ ; RV64V-NEXT: addi a1, a1, %lo(.LCPI108_0 )
13430
13504
; RV64V-NEXT: vsetivli zero, 8, e16, m1, ta, ma
13431
13505
; RV64V-NEXT: vle64.v v12, (a1)
13432
13506
; RV64V-NEXT: vluxei64.v v8, (a0), v12
@@ -13438,84 +13512,84 @@ define <8 x i16> @mgather_gather_2xSEW(ptr %base) {
13438
13512
; RV64ZVE32F-NEXT: vmset.m v8
13439
13513
; RV64ZVE32F-NEXT: vmv.x.s a1, v8
13440
13514
; RV64ZVE32F-NEXT: # implicit-def: $v8
13441
- ; RV64ZVE32F-NEXT: beqz zero, .LBB107_9
13515
+ ; RV64ZVE32F-NEXT: beqz zero, .LBB108_9
13442
13516
; RV64ZVE32F-NEXT: # %bb.1: # %else
13443
13517
; RV64ZVE32F-NEXT: andi a2, a1, 2
13444
- ; RV64ZVE32F-NEXT: bnez a2, .LBB107_10
13445
- ; RV64ZVE32F-NEXT: .LBB107_2 : # %else2
13518
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB108_10
13519
+ ; RV64ZVE32F-NEXT: .LBB108_2 : # %else2
13446
13520
; RV64ZVE32F-NEXT: andi a2, a1, 4
13447
- ; RV64ZVE32F-NEXT: bnez a2, .LBB107_11
13448
- ; RV64ZVE32F-NEXT: .LBB107_3 : # %else5
13521
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB108_11
13522
+ ; RV64ZVE32F-NEXT: .LBB108_3 : # %else5
13449
13523
; RV64ZVE32F-NEXT: andi a2, a1, 8
13450
- ; RV64ZVE32F-NEXT: bnez a2, .LBB107_12
13451
- ; RV64ZVE32F-NEXT: .LBB107_4 : # %else8
13524
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB108_12
13525
+ ; RV64ZVE32F-NEXT: .LBB108_4 : # %else8
13452
13526
; RV64ZVE32F-NEXT: andi a2, a1, 16
13453
- ; RV64ZVE32F-NEXT: bnez a2, .LBB107_13
13454
- ; RV64ZVE32F-NEXT: .LBB107_5 : # %else11
13527
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB108_13
13528
+ ; RV64ZVE32F-NEXT: .LBB108_5 : # %else11
13455
13529
; RV64ZVE32F-NEXT: andi a2, a1, 32
13456
- ; RV64ZVE32F-NEXT: bnez a2, .LBB107_14
13457
- ; RV64ZVE32F-NEXT: .LBB107_6 : # %else14
13530
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB108_14
13531
+ ; RV64ZVE32F-NEXT: .LBB108_6 : # %else14
13458
13532
; RV64ZVE32F-NEXT: andi a2, a1, 64
13459
- ; RV64ZVE32F-NEXT: bnez a2, .LBB107_15
13460
- ; RV64ZVE32F-NEXT: .LBB107_7 : # %else17
13533
+ ; RV64ZVE32F-NEXT: bnez a2, .LBB108_15
13534
+ ; RV64ZVE32F-NEXT: .LBB108_7 : # %else17
13461
13535
; RV64ZVE32F-NEXT: andi a1, a1, -128
13462
- ; RV64ZVE32F-NEXT: bnez a1, .LBB107_16
13463
- ; RV64ZVE32F-NEXT: .LBB107_8 : # %else20
13536
+ ; RV64ZVE32F-NEXT: bnez a1, .LBB108_16
13537
+ ; RV64ZVE32F-NEXT: .LBB108_8 : # %else20
13464
13538
; RV64ZVE32F-NEXT: ret
13465
- ; RV64ZVE32F-NEXT: .LBB107_9 : # %cond.load
13539
+ ; RV64ZVE32F-NEXT: .LBB108_9 : # %cond.load
13466
13540
; RV64ZVE32F-NEXT: vlse16.v v8, (a0), zero
13467
13541
; RV64ZVE32F-NEXT: andi a2, a1, 2
13468
- ; RV64ZVE32F-NEXT: beqz a2, .LBB107_2
13469
- ; RV64ZVE32F-NEXT: .LBB107_10 : # %cond.load1
13542
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB108_2
13543
+ ; RV64ZVE32F-NEXT: .LBB108_10 : # %cond.load1
13470
13544
; RV64ZVE32F-NEXT: addi a2, a0, 2
13471
13545
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13472
13546
; RV64ZVE32F-NEXT: vsetvli zero, zero, e16, m1, ta, ma
13473
13547
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13474
13548
; RV64ZVE32F-NEXT: vsetivli zero, 2, e16, m1, tu, ma
13475
13549
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 1
13476
13550
; RV64ZVE32F-NEXT: andi a2, a1, 4
13477
- ; RV64ZVE32F-NEXT: beqz a2, .LBB107_3
13478
- ; RV64ZVE32F-NEXT: .LBB107_11 : # %cond.load4
13551
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB108_3
13552
+ ; RV64ZVE32F-NEXT: .LBB108_11 : # %cond.load4
13479
13553
; RV64ZVE32F-NEXT: addi a2, a0, 4
13480
13554
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13481
13555
; RV64ZVE32F-NEXT: vsetivli zero, 3, e16, m1, tu, ma
13482
13556
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13483
13557
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 2
13484
13558
; RV64ZVE32F-NEXT: andi a2, a1, 8
13485
- ; RV64ZVE32F-NEXT: beqz a2, .LBB107_4
13486
- ; RV64ZVE32F-NEXT: .LBB107_12 : # %cond.load7
13559
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB108_4
13560
+ ; RV64ZVE32F-NEXT: .LBB108_12 : # %cond.load7
13487
13561
; RV64ZVE32F-NEXT: addi a2, a0, 6
13488
13562
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13489
13563
; RV64ZVE32F-NEXT: vsetivli zero, 4, e16, m1, tu, ma
13490
13564
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13491
13565
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 3
13492
13566
; RV64ZVE32F-NEXT: andi a2, a1, 16
13493
- ; RV64ZVE32F-NEXT: beqz a2, .LBB107_5
13494
- ; RV64ZVE32F-NEXT: .LBB107_13 : # %cond.load10
13567
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB108_5
13568
+ ; RV64ZVE32F-NEXT: .LBB108_13 : # %cond.load10
13495
13569
; RV64ZVE32F-NEXT: addi a2, a0, 16
13496
13570
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13497
13571
; RV64ZVE32F-NEXT: vsetivli zero, 5, e16, m1, tu, ma
13498
13572
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13499
13573
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 4
13500
13574
; RV64ZVE32F-NEXT: andi a2, a1, 32
13501
- ; RV64ZVE32F-NEXT: beqz a2, .LBB107_6
13502
- ; RV64ZVE32F-NEXT: .LBB107_14 : # %cond.load13
13575
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB108_6
13576
+ ; RV64ZVE32F-NEXT: .LBB108_14 : # %cond.load13
13503
13577
; RV64ZVE32F-NEXT: addi a2, a0, 18
13504
13578
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13505
13579
; RV64ZVE32F-NEXT: vsetivli zero, 6, e16, m1, tu, ma
13506
13580
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13507
13581
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 5
13508
13582
; RV64ZVE32F-NEXT: andi a2, a1, 64
13509
- ; RV64ZVE32F-NEXT: beqz a2, .LBB107_7
13510
- ; RV64ZVE32F-NEXT: .LBB107_15 : # %cond.load16
13583
+ ; RV64ZVE32F-NEXT: beqz a2, .LBB108_7
13584
+ ; RV64ZVE32F-NEXT: .LBB108_15 : # %cond.load16
13511
13585
; RV64ZVE32F-NEXT: addi a2, a0, 20
13512
13586
; RV64ZVE32F-NEXT: lh a2, 0(a2)
13513
13587
; RV64ZVE32F-NEXT: vsetivli zero, 7, e16, m1, tu, ma
13514
13588
; RV64ZVE32F-NEXT: vmv.s.x v9, a2
13515
13589
; RV64ZVE32F-NEXT: vslideup.vi v8, v9, 6
13516
13590
; RV64ZVE32F-NEXT: andi a1, a1, -128
13517
- ; RV64ZVE32F-NEXT: beqz a1, .LBB107_8
13518
- ; RV64ZVE32F-NEXT: .LBB107_16 : # %cond.load19
13591
+ ; RV64ZVE32F-NEXT: beqz a1, .LBB108_8
13592
+ ; RV64ZVE32F-NEXT: .LBB108_16 : # %cond.load19
13519
13593
; RV64ZVE32F-NEXT: addi a0, a0, 22
13520
13594
; RV64ZVE32F-NEXT: lh a0, 0(a0)
13521
13595
; RV64ZVE32F-NEXT: vsetivli zero, 8, e16, m1, ta, ma
0 commit comments