| // NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5 |
| // REQUIRES: powerpc-registered-target |
| // RUN: %clang_cc1 -triple powerpc64le-unknown-unknown -O2 -target-cpu pwr9 \ |
| // RUN: -emit-llvm %s -o - | FileCheck %s |
| // RUN: %clang_cc1 -triple powerpc64-unknown-unknown -O2 -target-cpu pwr9 \ |
| // RUN: -emit-llvm %s -o - | FileCheck %s |
| // RUN: %clang_cc1 -triple powerpc-unknown-unknown -O2 -target-cpu pwr9 \ |
| // RUN: -emit-llvm %s -o - | FileCheck %s |
| |
| // CHECK-LABEL: test_bcdcopysign |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdcopysign(<16 x i8> %a, <16 x i8> %b) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdcopysign(vector unsigned char a, vector unsigned char b) { |
| return __builtin_ppc_bcdcopysign(a, b); |
| } |
| |
| // CHECK-LABEL: test_bcdsetsign_imm0 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdsetsign(<16 x i8> %a, i32 0) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdsetsign_imm0(vector unsigned char a) { |
| return __builtin_ppc_bcdsetsign(a, '\0'); |
| } |
| |
| // CHECK-LABEL: test_bcdsetsign_imm1 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdsetsign(<16 x i8> %a, i32 1) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdsetsign_imm1(vector unsigned char a) { |
| return __builtin_ppc_bcdsetsign(a, '\1'); |
| } |
| |
| // CHECK-LABEL: test_bcdshift_imm0 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdshift(<16 x i8> %a, i32 %b, i32 0) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdshift_imm0(vector unsigned char a, int b, unsigned char c){ |
| return __builtin_ppc_bcdshift(a,b,'\0'); |
| } |
| |
| // CHECK-LABEL: test_bcdshift_imm1 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdshift(<16 x i8> %a, i32 %b, i32 1) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdshift_imm1(vector unsigned char a, int b, unsigned char c){ |
| return __builtin_ppc_bcdshift(a,b,'\1'); |
| } |
| |
| // CHECK-LABEL: test_bcdshiftround_imm0 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdshiftround(<16 x i8> %a, i32 %b, i32 0) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdshiftround_imm0(vector unsigned char a,int b, unsigned char c){ |
| return __builtin_ppc_bcdshiftround(a,b,'\0'); |
| } |
| |
| // CHECK-LABEL: test_bcdshiftround_imm1 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdshiftround(<16 x i8> %a, i32 %b, i32 1) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdshiftround_imm1(vector unsigned char a,int b, unsigned char c){ |
| return __builtin_ppc_bcdshiftround(a,b,'\1'); |
| } |
| |
| // CHECK-LABEL: test_bcdtruncate_imm0 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdtruncate(<16 x i8> %a, i32 %b, i32 0) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdtruncate_imm0(vector unsigned char a, int b, unsigned char c){ |
| return __builtin_ppc_bcdtruncate(a,b,'\0'); |
| } |
| |
| // CHECK-LABEL: test_bcdtruncate_imm1 |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdtruncate(<16 x i8> %a, i32 %b, i32 1) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdtruncate_imm1(vector unsigned char a, int b, unsigned char c){ |
| return __builtin_ppc_bcdtruncate(a,b,'\1'); |
| } |
| |
| // CHECK-LABEL: test_bcdunsignedtruncate |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdunsignedtruncate(<16 x i8> %a, i32 %b) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdunsignedtruncate(vector unsigned char a, int b) { |
| return __builtin_ppc_bcdunsignedtruncate(a, b); |
| } |
| |
| // CHECK-LABEL: test_bcdunsignedshift |
| // CHECK: [[TMP0:%.*]] = tail call <16 x i8> @llvm.ppc.bcdunsignedshift(<16 x i8> %a, i32 %b) |
| // CHECK-NEXT: ret <16 x i8> [[TMP0]] |
| vector unsigned char test_bcdunsignedshift(vector unsigned char a, int b){ |
| return __builtin_ppc_bcdunsignedshift(a,b); |
| } |