1// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple \ 2// RUN: dxil-pc-shadermodel6.3-library %s -D__HLSL_ENABLE_16_BIT \ 3// RUN: -emit-llvm -disable-llvm-passes -O3 -o - | FileCheck %s 4 5// FIXME: add test for char/int8_t/uint8_t when these types are supported in HLSL. 6// See https://github.com/llvm/llvm-project/issues/58453. 7 8// Make sure generate i16 add. 9// CHECK: add nsw i16 % 10int16_t add(int16_t a, int16_t b) { 11 return a + b; 12} 13// CHECK: define noundef <2 x i16> @ 14// CHECK: add <2 x i16> 15int16_t2 add(int16_t2 a, int16_t2 b) { 16 return a + b; 17} 18// CHECK: define noundef <3 x i16> @ 19// CHECK: add <3 x i16> 20int16_t3 add(int16_t3 a, int16_t3 b) { 21 return a + b; 22} 23// CHECK: define noundef <4 x i16> @ 24// CHECK: add <4 x i16> 25int16_t4 add(int16_t4 a, int16_t4 b) { 26 return a + b; 27} 28// CHECK: define noundef i16 @ 29// CHECK: add i16 % 30uint16_t add(uint16_t a, uint16_t b) { 31 return a + b; 32} 33// CHECK: define noundef <2 x i16> @ 34// CHECK: add <2 x i16> 35uint16_t2 add(uint16_t2 a, uint16_t2 b) { 36 return a + b; 37} 38// CHECK: define noundef <3 x i16> @ 39// CHECK: add <3 x i16> 40uint16_t3 add(uint16_t3 a, uint16_t3 b) { 41 return a + b; 42} 43// CHECK: define noundef <4 x i16> @ 44// CHECK: add <4 x i16> 45uint16_t4 add(uint16_t4 a, uint16_t4 b) { 46 return a + b; 47} 48