@@ -1433,6 +1433,72 @@ define amdgpu_kernel void @test_setreg_set_4_bits_straddles_round_and_denorm() {
1433
1433
ret void
1434
1434
}
1435
1435
1436
+ define amdgpu_ps void @test_63489 (i32 inreg %var.mode ) {
1437
+ ; GFX6-LABEL: test_63489:
1438
+ ; GFX6: ; %bb.0:
1439
+ ; GFX6-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x80,0xb9]
1440
+ ; GFX6-NEXT: ;;#ASMSTART
1441
+ ; GFX6-NEXT: ;;#ASMEND
1442
+ ; GFX6-NEXT: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
1443
+ ;
1444
+ ; GFX789-LABEL: test_63489:
1445
+ ; GFX789: ; %bb.0:
1446
+ ; GFX789-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x00,0xb9]
1447
+ ; GFX789-NEXT: ;;#ASMSTART
1448
+ ; GFX789-NEXT: ;;#ASMEND
1449
+ ; GFX789-NEXT: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
1450
+ ;
1451
+ ; GFX10-LABEL: test_63489:
1452
+ ; GFX10: ; %bb.0:
1453
+ ; GFX10-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x80,0xb9]
1454
+ ; GFX10-NEXT: ;;#ASMSTART
1455
+ ; GFX10-NEXT: ;;#ASMEND
1456
+ ; GFX10-NEXT: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
1457
+ ;
1458
+ ; GFX11-LABEL: test_63489:
1459
+ ; GFX11: ; %bb.0:
1460
+ ; GFX11-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x00,0xb9]
1461
+ ; GFX11-NEXT: ;;#ASMSTART
1462
+ ; GFX11-NEXT: ;;#ASMEND
1463
+ ; GFX11-NEXT: s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]
1464
+ call void @llvm.amdgcn.s.setreg (i32 63489 , i32 %var.mode )
1465
+ call void asm sideeffect "" , "" ()
1466
+ ret void
1467
+ }
1468
+
1469
+ define amdgpu_ps void @test_minus_2047 (i32 inreg %var.mode ) {
1470
+ ; GFX6-LABEL: test_minus_2047:
1471
+ ; GFX6: ; %bb.0:
1472
+ ; GFX6-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x80,0xb9]
1473
+ ; GFX6-NEXT: ;;#ASMSTART
1474
+ ; GFX6-NEXT: ;;#ASMEND
1475
+ ; GFX6-NEXT: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
1476
+ ;
1477
+ ; GFX789-LABEL: test_minus_2047:
1478
+ ; GFX789: ; %bb.0:
1479
+ ; GFX789-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x00,0xb9]
1480
+ ; GFX789-NEXT: ;;#ASMSTART
1481
+ ; GFX789-NEXT: ;;#ASMEND
1482
+ ; GFX789-NEXT: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
1483
+ ;
1484
+ ; GFX10-LABEL: test_minus_2047:
1485
+ ; GFX10: ; %bb.0:
1486
+ ; GFX10-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x80,0xb9]
1487
+ ; GFX10-NEXT: ;;#ASMSTART
1488
+ ; GFX10-NEXT: ;;#ASMEND
1489
+ ; GFX10-NEXT: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf]
1490
+ ;
1491
+ ; GFX11-LABEL: test_minus_2047:
1492
+ ; GFX11: ; %bb.0:
1493
+ ; GFX11-NEXT: s_setreg_b32 hwreg(HW_REG_MODE), s0 ; encoding: [0x01,0xf8,0x00,0xb9]
1494
+ ; GFX11-NEXT: ;;#ASMSTART
1495
+ ; GFX11-NEXT: ;;#ASMEND
1496
+ ; GFX11-NEXT: s_endpgm ; encoding: [0x00,0x00,0xb0,0xbf]
1497
+ call void @llvm.amdgcn.s.setreg (i32 -2047 , i32 %var.mode )
1498
+ call void asm sideeffect "" , "" ()
1499
+ ret void
1500
+ }
1501
+
1436
1502
; FIXME: Broken for DAG
1437
1503
; define void @test_setreg_roundingmode_var_vgpr(i32 %var.mode) {
1438
1504
; call void @llvm.amdgcn.s.setreg(i32 4097, i32 %var.mode)
0 commit comments