@@ -1320,6 +1320,32 @@ define <2 x i16> @undef_cvt_pknorm_i16() {
13201320 ret <2 x i16 > %cvt
13211321}
13221322
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+
13231349; --------------------------------------------------------------------
13241350; llvm.amdgcn.cvt.pknorm.u16
13251351; --------------------------------------------------------------------
@@ -1352,6 +1378,32 @@ define <2 x i16> @undef_cvt_pknorm_u16() {
13521378 ret <2 x i16 > %cvt
13531379}
13541380
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+
13551407; --------------------------------------------------------------------
13561408; llvm.amdgcn.cvt.pk.i16
13571409; --------------------------------------------------------------------
@@ -1384,6 +1436,32 @@ define <2 x i16> @undef_cvt_pk_i16() {
13841436 ret <2 x i16 > %cvt
13851437}
13861438
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+
13871465; --------------------------------------------------------------------
13881466; llvm.amdgcn.cvt.pk.u16
13891467; --------------------------------------------------------------------
@@ -1416,6 +1494,32 @@ define <2 x i16> @undef_cvt_pk_u16() {
14161494 ret <2 x i16 > %cvt
14171495}
14181496
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+
14191523; --------------------------------------------------------------------
14201524; llvm.amdgcn.ubfe
14211525; --------------------------------------------------------------------
0 commit comments