86 lines · plain
1; Test vector replicates that use VECTOR GENERATE MASK, v2f64 version.2;3; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z13 | FileCheck %s4 5; Test a word-granularity replicate with the lowest value that cannot use6; VREPIF.7define <2 x double> @f1() {8; CHECK-LABEL: f1:9; CHECK: vgmf %v24, 16, 1610; CHECK: br %r1411 ret <2 x double> <double 0x0000800000008000, double 0x0000800000008000>12}13 14; Test a word-granularity replicate that has the lower 17 bits set.15define <2 x double> @f2() {16; CHECK-LABEL: f2:17; CHECK: vgmf %v24, 15, 3118; CHECK: br %r1419 ret <2 x double> <double 0x0001ffff0001ffff, double 0x0001ffff0001ffff>20}21 22; Test a word-granularity replicate that has the upper 15 bits set.23define <2 x double> @f3() {24; CHECK-LABEL: f3:25; CHECK: vgmf %v24, 0, 1426; CHECK: br %r1427 ret <2 x double> <double 0xfffe0000fffe0000, double 0xfffe0000fffe0000>28}29 30; Test a word-granularity replicate that has middle bits set.31define <2 x double> @f4() {32; CHECK-LABEL: f4:33; CHECK: vgmf %v24, 2, 1134; CHECK: br %r1435 ret <2 x double> <double 0x3ff000003ff00000, double 0x3ff000003ff00000>36}37 38; Test a word-granularity replicate with a wrap-around mask.39define <2 x double> @f5() {40; CHECK-LABEL: f5:41; CHECK: vgmf %v24, 17, 1542; CHECK: br %r1443 ret <2 x double> <double 0xffff7fffffff7fff, double 0xffff7fffffff7fff>44}45 46; Test a doubleword-granularity replicate with the lowest value that cannot47; use VREPIG.48define <2 x double> @f6() {49; CHECK-LABEL: f6:50; CHECK: vgmg %v24, 48, 4851; CHECK: br %r1452 ret <2 x double> <double 0x0000000000008000, double 0x0000000000008000>53}54 55; Test a doubleword-granularity replicate that has the lower 22 bits set.56define <2 x double> @f7() {57; CHECK-LABEL: f7:58; CHECK: vgmg %v24, 42, 6359; CHECK: br %r1460 ret <2 x double> <double 0x000000000003fffff, double 0x000000000003fffff>61}62 63; Test a doubleword-granularity replicate that has the upper 45 bits set.64define <2 x double> @f8() {65; CHECK-LABEL: f8:66; CHECK: vgmg %v24, 0, 4467; CHECK: br %r1468 ret <2 x double> <double 0xfffffffffff80000, double 0xfffffffffff80000>69}70 71; Test a doubleword-granularity replicate that has middle bits set.72define <2 x double> @f9() {73; CHECK-LABEL: f9:74; CHECK: vgmg %v24, 2, 1175; CHECK: br %r1476 ret <2 x double> <double 0x3ff0000000000000, double 0x3ff0000000000000>77}78 79; Test a doubleword-granularity replicate with a wrap-around mask.80define <2 x double> @f10() {81; CHECK-LABEL: f10:82; CHECK: vgmg %v24, 10, 083; CHECK: br %r1484 ret <2 x double> <double 0x803fffffffffffff, double 0x803fffffffffffff>85}86