// REQUIRES: systemz-registered-target
// RUN: %clang_cc1 -target-cpu z17 -triple s390x-linux-gnu \
// RUN: -O2 -fzvector -flax-vector-conversions=none \
// RUN: -Wall -Wno-unused -Werror -emit-llvm %s -o - | FileCheck %s
// RUN: %clang_cc1 -target-cpu z17 -triple s390x-linux-gnu \
// RUN: -O2 -fzvector -flax-vector-conversions=none \
// RUN: -Wall -Wno-unused -Werror -S %s -o - | FileCheck %s --check-prefix=CHECK-ASM

#include <vecintrin.h>

volatile vector signed char vsc;
volatile vector signed short vss;
volatile vector signed int vsi;
volatile vector signed long long vsl;
volatile vector signed __int128 vslll;
volatile vector unsigned char vuc;
volatile vector unsigned short vus;
volatile vector unsigned int vui;
volatile vector unsigned long long vul;
volatile vector unsigned __int128 vulll;
volatile vector bool char vbc;
volatile vector bool short vbs;
volatile vector bool int vbi;
volatile vector bool long long vbl;
volatile vector bool __int128 vblll;
volatile vector float vf;
volatile vector double vd;

volatile int idx;
int cc;

void test_core(void) {
  // CHECK-ASM-LABEL: test_core

  vuc = vec_gen_element_masks_8(vus);
  // CHECK: call <16 x i8> @llvm.s390.vgemb(<8 x i16> %{{.*}})
  // CHECK-ASM: vgemb
  vus = vec_gen_element_masks_16(vuc);
  // CHECK: call <8 x i16> @llvm.s390.vgemh(<16 x i8> %{{.*}})
  // CHECK-ASM: vgemh
  vui = vec_gen_element_masks_32(vuc);
  // CHECK: call <4 x i32> @llvm.s390.vgemf(<16 x i8> %{{.*}})
  // CHECK-ASM: vgemf
  vul = vec_gen_element_masks_64(vuc);
  // CHECK: call <2 x i64> @llvm.s390.vgemg(<16 x i8> %{{.*}})
  // CHECK-ASM: vgemg
  vulll = vec_gen_element_masks_128(vuc);
  // CHECK: call i128 @llvm.s390.vgemq(<16 x i8> %{{.*}})
  // CHECK-ASM: vgemq

  vsc = vec_blend(vsc, vsc, vsc);
  // CHECK-ASM: vblendb
  vbc = vec_blend(vbc, vbc, vsc);
  // CHECK-ASM: vblendb
  vuc = vec_blend(vuc, vuc, vsc);
  // CHECK-ASM: vblendb
  vss = vec_blend(vss, vss, vss);
  // CHECK-ASM: vblendh
  vbs = vec_blend(vbs, vbs, vss);
  // CHECK-ASM: vblendh
  vus = vec_blend(vus, vus, vss);
  // CHECK-ASM: vblendh
  vsi = vec_blend(vsi, vsi, vsi);
  // CHECK-ASM: vblendf
  vbi = vec_blend(vbi, vbi, vsi);
  // CHECK-ASM: vblendf
  vui = vec_blend(vui, vui, vsi);
  // CHECK-ASM: vblendf
  vsl = vec_blend(vsl, vsl, vsl);
  // CHECK-ASM: vblendg
  vul = vec_blend(vul, vul, vsl);
  // CHECK-ASM: vblendg
  vbl = vec_blend(vbl, vbl, vsl);
  // CHECK-ASM: vblendg
  vslll = vec_blend(vslll, vslll, vslll);
  // CHECK-ASM: vblendq
  vblll = vec_blend(vblll, vblll, vslll);
  // CHECK-ASM: vblendq
  vulll = vec_blend(vulll, vulll, vslll);
  // CHECK-ASM: vblendq
  vf = vec_blend(vf, vf, vsi);
  // CHECK-ASM: vblendf
  vd = vec_blend(vd, vd, vsl);
  // CHECK-ASM: vblendg

  vslll = vec_unpackh(vsl);
  // CHECK: call i128 @llvm.s390.vuphg(<2 x i64> %{{.*}})
  // CHECK-ASM: vuphg
  vulll = vec_unpackh(vul);
  // CHECK: call i128 @llvm.s390.vuplhg(<2 x i64> %{{.*}})
  // CHECK-ASM: vuplhg
  vslll = vec_unpackl(vsl);
  // CHECK: call i128 @llvm.s390.vuplg(<2 x i64> %{{.*}})
  // CHECK-ASM: vuplg
  vulll = vec_unpackl(vul);
  // CHECK: call i128 @llvm.s390.vupllg(<2 x i64> %{{.*}})
  // CHECK-ASM: vupllg
}

void test_compare(void) {
  // CHECK-ASM-LABEL: test_compare

  vblll = vec_cmpeq(vslll, vslll);
  // CHECK: icmp eq <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vceqq
  vblll = vec_cmpeq(vulll, vulll);
  // CHECK: icmp eq <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vceqq
  vblll = vec_cmpeq(vblll, vblll);
  // CHECK: icmp eq <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vceqq

  vblll = vec_cmpge(vslll, vslll);
  // CHECK: icmp sge <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchq
  vblll = vec_cmpge(vulll, vulll);
  // CHECK: icmp uge <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchlq

  vblll = vec_cmpgt(vslll, vslll);
  // CHECK: icmp sgt <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchq
  vblll = vec_cmpgt(vulll, vulll);
  // CHECK: icmp ugt <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchlq

  vblll = vec_cmple(vslll, vslll);
  // CHECK: icmp sle <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchq
  vblll = vec_cmple(vulll, vulll);
  // CHECK: icmp ule <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchlq

  vblll = vec_cmplt(vslll, vslll);
  // CHECK: icmp slt <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchq
  vblll = vec_cmplt(vulll, vulll);
  // CHECK: icmp ult <1 x i128> %{{.*}}, %{{.*}}
  // CHECK-ASM: vchlq

  idx = vec_all_eq(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_all_eq(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_all_eq(vblll, vblll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs

  idx = vec_all_ne(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_all_ne(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_all_ne(vblll, vblll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs

  idx = vec_all_ge(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_all_ge(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs

  idx = vec_all_gt(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_all_gt(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs

  idx = vec_all_le(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_all_le(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs

  idx = vec_all_lt(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_all_lt(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs

  idx = vec_any_eq(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_any_eq(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_any_eq(vblll, vblll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs

  idx = vec_any_ne(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_any_ne(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs
  idx = vec_any_ne(vblll, vblll);
  // CHECK: call { i128, i32 } @llvm.s390.vceqqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vceqqs

  idx = vec_any_ge(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_any_ge(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs

  idx = vec_any_gt(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_any_gt(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs

  idx = vec_any_le(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_any_le(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs

  idx = vec_any_lt(vslll, vslll);
  // CHECK: call { i128, i32 } @llvm.s390.vchqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchqs
  idx = vec_any_lt(vulll, vulll);
  // CHECK: call { i128, i32 } @llvm.s390.vchlqs(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vchlqs
}

void test_integer(void) {
  // CHECK-ASM-LABEL: test_integer

  vulll = vec_cntlz(vulll);
  // CHECK: call range(i128 0, 129) i128 @llvm.ctlz.i128(i128 %{{.*}}, i1 false)
  // CHECK-ASM: vclzq
  vulll = vec_cnttz(vulll);
  // CHECK: call range(i128 0, 129) i128 @llvm.cttz.i128(i128 %{{.*}}, i1 false)
  // CHECK-ASM: vctzq

  vslll = vec_abs(vslll);
  // CHECK-ASM: vlcq

  vslll = vec_avg(vslll, vslll);
  // CHECK: call i128 @llvm.s390.vavgq(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vavgq
  vulll = vec_avg(vulll, vulll);
  // CHECK: call i128 @llvm.s390.vavglq(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vavglq

  vsc = vec_evaluate(vsc, vsc, vsc, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vsc = vec_evaluate(vsc, vsc, vsc, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vuc = vec_evaluate(vuc, vuc, vuc, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vuc = vec_evaluate(vuc, vuc, vuc, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vbc = vec_evaluate(vbc, vbc, vbc, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vbc = vec_evaluate(vbc, vbc, vbc, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vss = vec_evaluate(vss, vss, vss, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vss = vec_evaluate(vss, vss, vss, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vus = vec_evaluate(vus, vus, vus, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vus = vec_evaluate(vus, vus, vus, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vbs = vec_evaluate(vbs, vbs, vbs, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vbs = vec_evaluate(vbs, vbs, vbs, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vsi = vec_evaluate(vsi, vsi, vsi, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vsi = vec_evaluate(vsi, vsi, vsi, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vui = vec_evaluate(vui, vui, vui, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vui = vec_evaluate(vui, vui, vui, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vbi = vec_evaluate(vbi, vbi, vbi, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vbi = vec_evaluate(vbi, vbi, vbi, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vsl = vec_evaluate(vsl, vsl, vsl, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vsl = vec_evaluate(vsl, vsl, vsl, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vul = vec_evaluate(vul, vul, vul, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vul = vec_evaluate(vul, vul, vul, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vbl = vec_evaluate(vbl, vbl, vbl, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vbl = vec_evaluate(vbl, vbl, vbl, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vslll = vec_evaluate(vslll, vslll, vslll, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vslll = vec_evaluate(vslll, vslll, vslll, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vulll = vec_evaluate(vulll, vulll, vulll, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vulll = vec_evaluate(vulll, vulll, vulll, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval
  vblll = vec_evaluate(vblll, vblll, vblll, 0);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 0)
  // CHECK-ASM: veval
  vblll = vec_evaluate(vblll, vblll, vblll, 255);
  // CHECK: call <16 x i8> @llvm.s390.veval(<16 x i8> %{{.*}}, <16 x i8> %{{.*}}, <16 x i8> %{{.*}}, i32 255)
  // CHECK-ASM: veval

  vslll = vec_max(vslll, vslll);
  // CHECK-ASM: vmxq
  vulll = vec_max(vulll, vulll);
  // CHECK-ASM: vmxlq
  vslll = vec_min(vslll, vslll);
  // CHECK-ASM: vmnq
  vulll = vec_min(vulll, vulll);
  // CHECK-ASM: vmnlq

  vsl = vec_mladd(vsl, vsl, vsl);
  // CHECK-ASM: vmalg
  vsl = vec_mladd(vul, vsl, vsl);
  // CHECK-ASM: vmalg
  vsl = vec_mladd(vsl, vul, vul);
  // CHECK-ASM: vmalg
  vul = vec_mladd(vul, vul, vul);
  // CHECK-ASM: vmalg
  vslll = vec_mladd(vslll, vslll, vslll);
  // CHECK-ASM: vmalq
  vslll = vec_mladd(vulll, vslll, vslll);
  // CHECK-ASM: vmalq
  vslll = vec_mladd(vslll, vulll, vulll);
  // CHECK-ASM: vmalq
  vulll = vec_mladd(vulll, vulll, vulll);
  // CHECK-ASM: vmalq

  vsl = vec_mhadd(vsl, vsl, vsl);
  // CHECK: call <2 x i64> @llvm.s390.vmahg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmahg
  vul = vec_mhadd(vul, vul, vul);
  // CHECK: call <2 x i64> @llvm.s390.vmalhg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmalhg
  vslll = vec_mhadd(vslll, vslll, vslll);
  // CHECK: call i128 @llvm.s390.vmahq(i128 %{{.*}}, i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmahq
  vulll = vec_mhadd(vulll, vulll, vulll);
  // CHECK: call i128 @llvm.s390.vmalhq(i128 %{{.*}}, i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmalhq

  vslll = vec_meadd(vsl, vsl, vslll);
  // CHECK: call i128 @llvm.s390.vmaeg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmaeg
  vulll = vec_meadd(vul, vul, vulll);
  // CHECK: call i128 @llvm.s390.vmaleg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmaleg

  vslll = vec_moadd(vsl, vsl, vslll);
  // CHECK: call i128 @llvm.s390.vmaog(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmaog
  vulll = vec_moadd(vul, vul, vulll);
  // CHECK: call i128 @llvm.s390.vmalog(<2 x i64> %{{.*}}, <2 x i64> %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmalog

  vsl = vec_mulh(vsl, vsl);
  // CHECK: call <2 x i64> @llvm.s390.vmhg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmhg
  vul = vec_mulh(vul, vul);
  // CHECK: call <2 x i64> @llvm.s390.vmlhg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmlhg
  vslll = vec_mulh(vslll, vslll);
  // CHECK: call i128 @llvm.s390.vmhq(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmhq
  vulll = vec_mulh(vulll, vulll);
  // CHECK: call i128 @llvm.s390.vmlhq(i128 %{{.*}}, i128 %{{.*}})
  // CHECK-ASM: vmlhq

  vslll = vec_mule(vsl, vsl);
  // CHECK: call i128 @llvm.s390.vmeg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmeg
  vulll = vec_mule(vul, vul);
  // CHECK: call i128 @llvm.s390.vmleg(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmleg

  vslll = vec_mulo(vsl, vsl);
  // CHECK: call i128 @llvm.s390.vmog(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmog
  vulll = vec_mulo(vul, vul);
  // CHECK: call i128 @llvm.s390.vmlog(<2 x i64> %{{.*}}, <2 x i64> %{{.*}})
  // CHECK-ASM: vmlog
}

