48 lines · plain
1// REQUIRES: amdgpu-registered-target2//3// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - %s \4// RUN: | FileCheck -check-prefixes=COMMON,ON %s5// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - %s \6// RUN: -mno-amdgpu-ieee -menable-no-nans \7// RUN: | FileCheck -check-prefixes=COMMON,OFF %s8// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - %s \9// RUN: -mno-amdgpu-ieee -cl-fast-relaxed-math \10// RUN: | FileCheck -check-prefixes=COMMON,OFF %s11 12// Check AMDGCN ISA generation.13 14// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -O3 -S -o - %s \15// RUN: | FileCheck -check-prefixes=ISA-ON %s16// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -O3 -S -o - %s \17// RUN: -mno-amdgpu-ieee -menable-no-nans \18// RUN: | FileCheck -check-prefixes=ISA-OFF %s19 20// Check diagnostics when using -mno-amdgpu-ieee without NoHonorNaNs.21 22// RUN: not %clang_cc1 -triple amdgcn-amd-amdhsa -O0 -emit-llvm -o - %s \23// RUN: -mno-amdgpu-ieee 2>&1 | FileCheck -check-prefixes=DIAG %s24 25// COMMON: define{{.*}} amdgpu_kernel void @kern{{.*}} [[ATTRS1:#[0-9]+]]26// ISA-ON: v_mul_f32_e64 v{{[0-9]+}}, 1.0, s{{[0-9]+}}27// ISA-ON: v_mul_f32_e64 v{{[0-9]+}}, 1.0, s{{[0-9]+}}28// ISA-ON: v_min_f32_e3229// ISA-ON: ; IeeeMode: 130// ISA-OFF-NOT: v_mul_f32_e64 v{{[0-9]+}}, 1.0, s{{[0-9]+}}31// ISA-OFF-NOT: v_mul_f32_e64 v{{[0-9]+}}, 1.0, s{{[0-9]+}}32// ISA-OFF: v_min_f32_e3233// ISA-OFF: ; IeeeMode: 034kernel void kern(global float *x, float y, float z) {35 *x = __builtin_fmin(y, z);36}37 38// COMMON: define{{.*}}void @fun() [[ATTRS2:#[0-9]+]]39void fun() {40}41 42// ON-NOT: attributes [[ATTRS1]] = {{.*}} "amdgpu-ieee"43// OFF: attributes [[ATTRS1]] = {{.*}} "amdgpu-ieee"="false"{{.*}}"no-nans-fp-math"="true"{{.*}}"no-trapping-math"="true"44// ON-NOT: attributes [[ATTRS2]] = {{.*}} "amdgpu-ieee"45// OFF: attributes [[ATTRS2]] = {{.*}} "amdgpu-ieee"="false"{{.*}}"no-nans-fp-math"="true"{{.*}}"no-trapping-math"="true"46 47// DIAG: invalid argument '-mno-amdgpu-ieee' only allowed with relaxed NaN handling48