brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.1 KiB · 6264b5c Raw
166 lines · c
1// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 52 3// RUN: %clang_cc1 -O2 -triple aarch64 -emit-llvm -x c   -DUSE_NEON_H  %s -o - | FileCheck %s4// RUN: %clang_cc1 -O2 -triple aarch64 -emit-llvm -x c   -DUSE_SVE_H   %s -o - | FileCheck %s5// RUN: %clang_cc1 -O2 -triple aarch64 -emit-llvm -x c   -DUSE_SME_H   %s -o - | FileCheck %s6// RUN: %clang_cc1 -O2 -triple aarch64 -emit-llvm -x c++ -DUSE_NEON_H  %s -o - | FileCheck %s7// RUN: %clang_cc1 -O2 -triple aarch64 -emit-llvm -x c++ -DUSE_SVE_H   %s -o - | FileCheck %s8// RUN: %clang_cc1 -O2 -triple aarch64 -emit-llvm -x c++ -DUSE_SME_H   %s -o - | FileCheck %s9 10// REQUIRES: aarch64-registered-target11 12#ifdef USE_NEON_H13#include "arm_neon.h"14#endif15 16#ifdef USE_SVE_H17#include "arm_sve.h"18#endif19 20#ifdef USE_SME_H21#include "arm_sme.h"22#endif23 24#ifdef __cplusplus25extern "C" {26#endif27 28#define INIT_ZERO 029#define INIT_ONES 0xffffffffffffffffU30 31// CHECK-LABEL: define dso_local noundef i64 @test_init(32// CHECK-SAME: ) local_unnamed_addr #[[ATTR0:[0-9]+]] {33// CHECK-NEXT:  [[ENTRY:.*:]]34// CHECK-NEXT:    ret i64 035//36fpm_t test_init() { return __arm_fpm_init(); }37 38// CHECK-LABEL: define dso_local noundef range(i64 0, -6) i64 @test_src1_1(39// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {40// CHECK-NEXT:  [[ENTRY:.*:]]41// CHECK-NEXT:    ret i64 -842//43fpm_t test_src1_1() {44  return __arm_set_fpm_src1_format(INIT_ONES, __ARM_FPM_E5M2);45}46 47// CHECK-LABEL: define dso_local noundef range(i64 0, -6) i64 @test_src1_2(48// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {49// CHECK-NEXT:  [[ENTRY:.*:]]50// CHECK-NEXT:    ret i64 151//52fpm_t test_src1_2() {53  return __arm_set_fpm_src1_format(INIT_ZERO, __ARM_FPM_E4M3);54}55 56// CHECK-LABEL: define dso_local noundef range(i64 0, -48) i64 @test_src2_1(57// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {58// CHECK-NEXT:  [[ENTRY:.*:]]59// CHECK-NEXT:    ret i64 -5760//61fpm_t test_src2_1() {62  return __arm_set_fpm_src2_format(INIT_ONES, __ARM_FPM_E5M2);63}64 65// CHECK-LABEL: define dso_local noundef range(i64 0, -48) i64 @test_src2_2(66// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {67// CHECK-NEXT:  [[ENTRY:.*:]]68// CHECK-NEXT:    ret i64 869//70fpm_t test_src2_2() {71  return __arm_set_fpm_src2_format(INIT_ZERO, __ARM_FPM_E4M3);72}73 74// CHECK-LABEL: define dso_local noundef range(i64 0, -384) i64 @test_dst1_1(75// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {76// CHECK-NEXT:  [[ENTRY:.*:]]77// CHECK-NEXT:    ret i64 -44978//79fpm_t test_dst1_1() {80  return __arm_set_fpm_dst_format(INIT_ONES, __ARM_FPM_E5M2);81}82 83// CHECK-LABEL: define dso_local noundef range(i64 0, -384) i64 @test_dst2_2(84// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {85// CHECK-NEXT:  [[ENTRY:.*:]]86// CHECK-NEXT:    ret i64 6487//88fpm_t test_dst2_2() {89  return __arm_set_fpm_dst_format(INIT_ZERO, __ARM_FPM_E4M3);90}91 92// CHECK-LABEL: define dso_local noundef i64 @test_of_mul_1(93// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {94// CHECK-NEXT:  [[ENTRY:.*:]]95// CHECK-NEXT:    ret i64 -1638596//97fpm_t test_of_mul_1() {98  return __arm_set_fpm_overflow_mul(INIT_ONES, __ARM_FPM_INFNAN);99}100 101// CHECK-LABEL: define dso_local noundef i64 @test_of_mul_2(102// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {103// CHECK-NEXT:  [[ENTRY:.*:]]104// CHECK-NEXT:    ret i64 16384105//106fpm_t test_of_mul_2() {107  return __arm_set_fpm_overflow_mul(INIT_ZERO, __ARM_FPM_SATURATE);108}109 110// CHECK-LABEL: define dso_local noundef i64 @test_of_cvt_1(111// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {112// CHECK-NEXT:  [[ENTRY:.*:]]113// CHECK-NEXT:    ret i64 -32769114//115fpm_t test_of_cvt_1() {116  return __arm_set_fpm_overflow_cvt(INIT_ONES, __ARM_FPM_INFNAN);117}118 119// CHECK-LABEL: define dso_local noundef i64 @test_of_cvt_2(120// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {121// CHECK-NEXT:  [[ENTRY:.*:]]122// CHECK-NEXT:    ret i64 32768123//124fpm_t test_of_cvt_2() {125  return __arm_set_fpm_overflow_cvt(INIT_ZERO, __ARM_FPM_SATURATE);126}127 128// CHECK-LABEL: define dso_local noundef i64 @test_lscale(129// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {130// CHECK-NEXT:  [[ENTRY:.*:]]131// CHECK-NEXT:    ret i64 8323072132//133fpm_t test_lscale() { return __arm_set_fpm_lscale(INIT_ZERO, 127); }134 135// CHECK-LABEL: define dso_local noundef i64 @test_lscale2(136// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {137// CHECK-NEXT:  [[ENTRY:.*:]]138// CHECK-NEXT:    ret i64 270582939648139//140fpm_t test_lscale2() { return __arm_set_fpm_lscale2(INIT_ZERO, 63); }141 142// CHECK-LABEL: define dso_local noundef range(i64 0, 4278190081) i64 @test_nscale_1(143// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {144// CHECK-NEXT:  [[ENTRY:.*:]]145// CHECK-NEXT:    ret i64 2147483648146//147fpm_t test_nscale_1() { return __arm_set_fpm_nscale(INIT_ZERO, -128); }148 149// CHECK-LABEL: define dso_local noundef range(i64 0, 4278190081) i64 @test_nscale_2(150// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {151// CHECK-NEXT:  [[ENTRY:.*:]]152// CHECK-NEXT:    ret i64 2130706432153//154fpm_t test_nscale_2() { return __arm_set_fpm_nscale(INIT_ZERO, 127); }155 156// CHECK-LABEL: define dso_local noundef range(i64 0, 4278190081) i64 @test_nscale_3(157// CHECK-SAME: ) local_unnamed_addr #[[ATTR0]] {158// CHECK-NEXT:  [[ENTRY:.*:]]159// CHECK-NEXT:    ret i64 4278190080160//161fpm_t test_nscale_3() { return __arm_set_fpm_nscale(INIT_ZERO, -1); }162 163#ifdef __cplusplus164}165#endif166