@@ -1320,6 +1320,32 @@ define <2 x i16> @undef_cvt_pknorm_i16() {
1320
1320
ret <2 x i16 > %cvt
1321
1321
}
1322
1322
1323
+ define <2 x i16 > @poison_lhs_cvt_pknorm_i16 (float %y ) {
1324
+ ; CHECK-LABEL: @poison_lhs_cvt_pknorm_i16(
1325
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pknorm.i16(float poison, float [[Y:%.*]])
1326
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1327
+ ;
1328
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pknorm.i16 (float poison, float %y )
1329
+ ret <2 x i16 > %cvt
1330
+ }
1331
+
1332
+ define <2 x i16 > @poison_rhs_cvt_pknorm_i16 (float %x ) {
1333
+ ; CHECK-LABEL: @poison_rhs_cvt_pknorm_i16(
1334
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pknorm.i16(float [[X:%.*]], float poison)
1335
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1336
+ ;
1337
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pknorm.i16 (float %x , float poison)
1338
+ ret <2 x i16 > %cvt
1339
+ }
1340
+
1341
+ define <2 x i16 > @poison_cvt_pknorm_i16 () {
1342
+ ; CHECK-LABEL: @poison_cvt_pknorm_i16(
1343
+ ; CHECK-NEXT: ret <2 x i16> poison
1344
+ ;
1345
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pknorm.i16 (float poison, float poison)
1346
+ ret <2 x i16 > %cvt
1347
+ }
1348
+
1323
1349
; --------------------------------------------------------------------
1324
1350
; llvm.amdgcn.cvt.pknorm.u16
1325
1351
; --------------------------------------------------------------------
@@ -1352,6 +1378,32 @@ define <2 x i16> @undef_cvt_pknorm_u16() {
1352
1378
ret <2 x i16 > %cvt
1353
1379
}
1354
1380
1381
+ define <2 x i16 > @poison_lhs_cvt_pknorm_u16 (float %y ) {
1382
+ ; CHECK-LABEL: @poison_lhs_cvt_pknorm_u16(
1383
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pknorm.u16(float poison, float [[Y:%.*]])
1384
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1385
+ ;
1386
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pknorm.u16 (float poison, float %y )
1387
+ ret <2 x i16 > %cvt
1388
+ }
1389
+
1390
+ define <2 x i16 > @poison_rhs_cvt_pknorm_u16 (float %x ) {
1391
+ ; CHECK-LABEL: @poison_rhs_cvt_pknorm_u16(
1392
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pknorm.u16(float [[X:%.*]], float poison)
1393
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1394
+ ;
1395
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pknorm.u16 (float %x , float poison)
1396
+ ret <2 x i16 > %cvt
1397
+ }
1398
+
1399
+ define <2 x i16 > @poison_cvt_pknorm_u16 () {
1400
+ ; CHECK-LABEL: @poison_cvt_pknorm_u16(
1401
+ ; CHECK-NEXT: ret <2 x i16> poison
1402
+ ;
1403
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pknorm.u16 (float poison, float poison)
1404
+ ret <2 x i16 > %cvt
1405
+ }
1406
+
1355
1407
; --------------------------------------------------------------------
1356
1408
; llvm.amdgcn.cvt.pk.i16
1357
1409
; --------------------------------------------------------------------
@@ -1384,6 +1436,32 @@ define <2 x i16> @undef_cvt_pk_i16() {
1384
1436
ret <2 x i16 > %cvt
1385
1437
}
1386
1438
1439
+ define <2 x i16 > @poison_lhs_cvt_pk_i16 (i32 %y ) {
1440
+ ; CHECK-LABEL: @poison_lhs_cvt_pk_i16(
1441
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pk.i16(i32 poison, i32 [[Y:%.*]])
1442
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1443
+ ;
1444
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pk.i16 (i32 poison, i32 %y )
1445
+ ret <2 x i16 > %cvt
1446
+ }
1447
+
1448
+ define <2 x i16 > @poison_rhs_cvt_pk_i16 (i32 %x ) {
1449
+ ; CHECK-LABEL: @poison_rhs_cvt_pk_i16(
1450
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pk.i16(i32 [[X:%.*]], i32 poison)
1451
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1452
+ ;
1453
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pk.i16 (i32 %x , i32 poison)
1454
+ ret <2 x i16 > %cvt
1455
+ }
1456
+
1457
+ define <2 x i16 > @poison_cvt_pk_i16 () {
1458
+ ; CHECK-LABEL: @poison_cvt_pk_i16(
1459
+ ; CHECK-NEXT: ret <2 x i16> poison
1460
+ ;
1461
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pk.i16 (i32 poison, i32 poison)
1462
+ ret <2 x i16 > %cvt
1463
+ }
1464
+
1387
1465
; --------------------------------------------------------------------
1388
1466
; llvm.amdgcn.cvt.pk.u16
1389
1467
; --------------------------------------------------------------------
@@ -1416,6 +1494,32 @@ define <2 x i16> @undef_cvt_pk_u16() {
1416
1494
ret <2 x i16 > %cvt
1417
1495
}
1418
1496
1497
+ define <2 x i16 > @poison_lhs_cvt_pk_u16 (i32 %y ) {
1498
+ ; CHECK-LABEL: @poison_lhs_cvt_pk_u16(
1499
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pk.u16(i32 poison, i32 [[Y:%.*]])
1500
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1501
+ ;
1502
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pk.u16 (i32 poison, i32 %y )
1503
+ ret <2 x i16 > %cvt
1504
+ }
1505
+
1506
+ define <2 x i16 > @poison_rhs_cvt_pk_u16 (i32 %x ) {
1507
+ ; CHECK-LABEL: @poison_rhs_cvt_pk_u16(
1508
+ ; CHECK-NEXT: [[CVT:%.*]] = call <2 x i16> @llvm.amdgcn.cvt.pk.u16(i32 [[X:%.*]], i32 poison)
1509
+ ; CHECK-NEXT: ret <2 x i16> [[CVT]]
1510
+ ;
1511
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pk.u16 (i32 %x , i32 poison)
1512
+ ret <2 x i16 > %cvt
1513
+ }
1514
+
1515
+ define <2 x i16 > @poison_cvt_pk_u16 () {
1516
+ ; CHECK-LABEL: @poison_cvt_pk_u16(
1517
+ ; CHECK-NEXT: ret <2 x i16> poison
1518
+ ;
1519
+ %cvt = call <2 x i16 > @llvm.amdgcn.cvt.pk.u16 (i32 poison, i32 poison)
1520
+ ret <2 x i16 > %cvt
1521
+ }
1522
+
1419
1523
; --------------------------------------------------------------------
1420
1524
; llvm.amdgcn.ubfe
1421
1525
; --------------------------------------------------------------------
0 commit comments