@@ -5692,10 +5692,6 @@ define void @freeze_v3i16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
5692
5692
; GFX6-SDAG-NEXT: s_mov_b32 s5, s6
5693
5693
; GFX6-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
5694
5694
; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0)
5695
- ; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v4, 16, v0
5696
- ; GFX6-SDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
5697
- ; GFX6-SDAG-NEXT: v_lshlrev_b32_e32 v4, 16, v4
5698
- ; GFX6-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
5699
5695
; GFX6-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
5700
5696
; GFX6-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
5701
5697
; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0)
@@ -5725,10 +5721,6 @@ define void @freeze_v3i16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
5725
5721
; GFX7-SDAG-NEXT: s_mov_b32 s5, s6
5726
5722
; GFX7-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
5727
5723
; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
5728
- ; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v4, 16, v0
5729
- ; GFX7-SDAG-NEXT: v_and_b32_e32 v0, 0xffff, v0
5730
- ; GFX7-SDAG-NEXT: v_lshlrev_b32_e32 v4, 16, v4
5731
- ; GFX7-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
5732
5724
; GFX7-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
5733
5725
; GFX7-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
5734
5726
; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
@@ -6351,10 +6343,6 @@ define void @freeze_v3f16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
6351
6343
; GFX6-SDAG-NEXT: s_mov_b32 s5, s6
6352
6344
; GFX6-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
6353
6345
; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0)
6354
- ; GFX6-SDAG-NEXT: v_and_b32_e32 v4, 0xffff, v0
6355
- ; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v0, 16, v0
6356
- ; GFX6-SDAG-NEXT: v_lshlrev_b32_e32 v0, 16, v0
6357
- ; GFX6-SDAG-NEXT: v_or_b32_e32 v0, v4, v0
6358
6346
; GFX6-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
6359
6347
; GFX6-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
6360
6348
; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0)
@@ -6384,10 +6372,6 @@ define void @freeze_v3f16(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
6384
6372
; GFX7-SDAG-NEXT: s_mov_b32 s5, s6
6385
6373
; GFX7-SDAG-NEXT: buffer_load_dwordx2 v[0:1], v[0:1], s[4:7], 0 addr64
6386
6374
; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
6387
- ; GFX7-SDAG-NEXT: v_and_b32_e32 v4, 0xffff, v0
6388
- ; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v0, 16, v0
6389
- ; GFX7-SDAG-NEXT: v_lshlrev_b32_e32 v0, 16, v0
6390
- ; GFX7-SDAG-NEXT: v_or_b32_e32 v0, v4, v0
6391
6375
; GFX7-SDAG-NEXT: buffer_store_short v1, v[2:3], s[4:7], 0 addr64 offset:4
6392
6376
; GFX7-SDAG-NEXT: buffer_store_dword v0, v[2:3], s[4:7], 0 addr64
6393
6377
; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
@@ -12347,14 +12331,9 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
12347
12331
; GFX6-SDAG-NEXT: s_mov_b32 s5, s6
12348
12332
; GFX6-SDAG-NEXT: buffer_load_dword v0, v[0:1], s[4:7], 0 addr64
12349
12333
; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0)
12350
- ; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v4, 8, v0
12351
- ; GFX6-SDAG-NEXT: v_and_b32_e32 v4, 0xff, v4
12352
12334
; GFX6-SDAG-NEXT: v_lshrrev_b32_e32 v1, 16, v0
12353
- ; GFX6-SDAG-NEXT: v_and_b32_e32 v0, 0xff, v0
12354
- ; GFX6-SDAG-NEXT: v_lshlrev_b32_e32 v4, 8, v4
12355
- ; GFX6-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
12356
- ; GFX6-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
12357
12335
; GFX6-SDAG-NEXT: buffer_store_short v0, v[2:3], s[4:7], 0 addr64
12336
+ ; GFX6-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
12358
12337
; GFX6-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0)
12359
12338
; GFX6-SDAG-NEXT: s_setpc_b64 s[30:31]
12360
12339
;
@@ -12392,14 +12371,9 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
12392
12371
; GFX7-SDAG-NEXT: s_mov_b32 s5, s6
12393
12372
; GFX7-SDAG-NEXT: buffer_load_dword v0, v[0:1], s[4:7], 0 addr64
12394
12373
; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
12395
- ; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v4, 8, v0
12396
- ; GFX7-SDAG-NEXT: v_and_b32_e32 v4, 0xff, v4
12397
12374
; GFX7-SDAG-NEXT: v_lshrrev_b32_e32 v1, 16, v0
12398
- ; GFX7-SDAG-NEXT: v_and_b32_e32 v0, 0xff, v0
12399
- ; GFX7-SDAG-NEXT: v_lshlrev_b32_e32 v4, 8, v4
12400
- ; GFX7-SDAG-NEXT: v_or_b32_e32 v0, v0, v4
12401
- ; GFX7-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
12402
12375
; GFX7-SDAG-NEXT: buffer_store_short v0, v[2:3], s[4:7], 0 addr64
12376
+ ; GFX7-SDAG-NEXT: buffer_store_byte v1, v[2:3], s[4:7], 0 addr64 offset:2
12403
12377
; GFX7-SDAG-NEXT: s_waitcnt vmcnt(0)
12404
12378
; GFX7-SDAG-NEXT: s_setpc_b64 s[30:31]
12405
12379
;
@@ -12474,11 +12448,7 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
12474
12448
; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12475
12449
; GFX10-SDAG-NEXT: global_load_dword v0, v[0:1], off
12476
12450
; GFX10-SDAG-NEXT: s_waitcnt vmcnt(0)
12477
- ; GFX10-SDAG-NEXT: v_lshrrev_b16 v1, 8, v0
12478
- ; GFX10-SDAG-NEXT: v_lshrrev_b32_e32 v4, 16, v0
12479
- ; GFX10-SDAG-NEXT: v_lshlrev_b16 v1, 8, v1
12480
- ; GFX10-SDAG-NEXT: v_or_b32_sdwa v0, v0, v1 dst_sel:DWORD dst_unused:UNUSED_PAD src0_sel:BYTE_0 src1_sel:DWORD
12481
- ; GFX10-SDAG-NEXT: global_store_byte v[2:3], v4, off offset:2
12451
+ ; GFX10-SDAG-NEXT: global_store_byte_d16_hi v[2:3], v0, off offset:2
12482
12452
; GFX10-SDAG-NEXT: global_store_short v[2:3], v0, off
12483
12453
; GFX10-SDAG-NEXT: s_setpc_b64 s[30:31]
12484
12454
;
@@ -12499,36 +12469,15 @@ define void @freeze_v3i8(ptr addrspace(1) %ptra, ptr addrspace(1) %ptrb) {
12499
12469
; GFX10-GISEL-NEXT: global_store_byte_d16_hi v[2:3], v0, off offset:2
12500
12470
; GFX10-GISEL-NEXT: s_setpc_b64 s[30:31]
12501
12471
;
12502
- ; GFX11-SDAG-TRUE16-LABEL: freeze_v3i8:
12503
- ; GFX11-SDAG-TRUE16: ; %bb.0:
12504
- ; GFX11-SDAG-TRUE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12505
- ; GFX11-SDAG-TRUE16-NEXT: global_load_b32 v1, v[0:1], off
12506
- ; GFX11-SDAG-TRUE16-NEXT: v_mov_b16_e32 v4.h, 0
12507
- ; GFX11-SDAG-TRUE16-NEXT: s_waitcnt vmcnt(0)
12508
- ; GFX11-SDAG-TRUE16-NEXT: v_lshrrev_b16 v0.l, 8, v1.l
12509
- ; GFX11-SDAG-TRUE16-NEXT: v_and_b16 v0.h, 0xff, v1.l
12510
- ; GFX11-SDAG-TRUE16-NEXT: v_mov_b16_e32 v4.l, v1.h
12511
- ; GFX11-SDAG-TRUE16-NEXT: v_lshlrev_b16 v0.l, 8, v0.l
12512
- ; GFX11-SDAG-TRUE16-NEXT: v_or_b16 v0.l, v0.h, v0.l
12513
- ; GFX11-SDAG-TRUE16-NEXT: s_clause 0x1
12514
- ; GFX11-SDAG-TRUE16-NEXT: global_store_b8 v[2:3], v4, off offset:2
12515
- ; GFX11-SDAG-TRUE16-NEXT: global_store_b16 v[2:3], v0, off
12516
- ; GFX11-SDAG-TRUE16-NEXT: s_setpc_b64 s[30:31]
12517
- ;
12518
- ; GFX11-SDAG-FAKE16-LABEL: freeze_v3i8:
12519
- ; GFX11-SDAG-FAKE16: ; %bb.0:
12520
- ; GFX11-SDAG-FAKE16-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12521
- ; GFX11-SDAG-FAKE16-NEXT: global_load_b32 v0, v[0:1], off
12522
- ; GFX11-SDAG-FAKE16-NEXT: s_waitcnt vmcnt(0)
12523
- ; GFX11-SDAG-FAKE16-NEXT: v_lshrrev_b16 v1, 8, v0
12524
- ; GFX11-SDAG-FAKE16-NEXT: v_and_b32_e32 v4, 0xff, v0
12525
- ; GFX11-SDAG-FAKE16-NEXT: v_lshrrev_b32_e32 v0, 16, v0
12526
- ; GFX11-SDAG-FAKE16-NEXT: v_lshlrev_b16 v1, 8, v1
12527
- ; GFX11-SDAG-FAKE16-NEXT: v_or_b32_e32 v1, v4, v1
12528
- ; GFX11-SDAG-FAKE16-NEXT: s_clause 0x1
12529
- ; GFX11-SDAG-FAKE16-NEXT: global_store_b8 v[2:3], v0, off offset:2
12530
- ; GFX11-SDAG-FAKE16-NEXT: global_store_b16 v[2:3], v1, off
12531
- ; GFX11-SDAG-FAKE16-NEXT: s_setpc_b64 s[30:31]
12472
+ ; GFX11-SDAG-LABEL: freeze_v3i8:
12473
+ ; GFX11-SDAG: ; %bb.0:
12474
+ ; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0)
12475
+ ; GFX11-SDAG-NEXT: global_load_b32 v0, v[0:1], off
12476
+ ; GFX11-SDAG-NEXT: s_waitcnt vmcnt(0)
12477
+ ; GFX11-SDAG-NEXT: s_clause 0x1
12478
+ ; GFX11-SDAG-NEXT: global_store_d16_hi_b8 v[2:3], v0, off offset:2
12479
+ ; GFX11-SDAG-NEXT: global_store_b16 v[2:3], v0, off
12480
+ ; GFX11-SDAG-NEXT: s_setpc_b64 s[30:31]
12532
12481
;
12533
12482
; GFX11-GISEL-LABEL: freeze_v3i8:
12534
12483
; GFX11-GISEL: ; %bb.0:
0 commit comments