blob: c2c9453d726f42567bb504e09d228b42e22b3dae [file] [edit]
// REQUIRES: powerpc-registered-target
// RUN: %clang_cc1 -triple powerpc64-unknown-unknown -target-cpu future \
// RUN: -flax-vector-conversions=none -emit-llvm %s -o - | FileCheck %s
// RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -target-cpu future \
// RUN: -flax-vector-conversions=none -emit-llvm %s -o - | FileCheck %s
#include <altivec.h>
vector unsigned short vusa, vusb;
vector signed short vssa, vssb;
// Test vec_mulh for signed short
vector signed short test_vec_mulh_ss(void) {
// CHECK-LABEL: @test_vec_mulh_ss
// CHECK: call <8 x i16> @llvm.ppc.altivec.vmulhsh(<8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}})
// CHECK-NEXT: ret <8 x i16>
return vec_mulh(vssa, vssb);
}
// Test vec_mulh for unsigned short
vector unsigned short test_vec_mulh_uh(void) {
// CHECK-LABEL: @test_vec_mulh_uh
// CHECK: call <8 x i16> @llvm.ppc.altivec.vmulhuh(<8 x i16> %{{[0-9]+}}, <8 x i16> %{{[0-9]+}})
// CHECK-NEXT: ret <8 x i16>
return vec_mulh(vusa, vusb);
}