61 lines · plain
1// RUN: %clang_cc1 -finclude-default-header -x hlsl -triple dxil-pc-shadermodel6.2-library %s -fnative-half-type -fnative-int16-type -emit-llvm -O1 -o - | FileCheck %s2 3//CHECK-LABEL: define {{.*}}test_ints4//CHECK-SAME: {{.*}}(i16 {{.*}} [[VAL:%.*]]){{.*}}5//CHECK-NOT: bitcast6//CHECK: entry:7//CHECK: ret i16 [[VAL]]8uint16_t test_int(int16_t p0)9{10 return asuint16(p0);11}12 13//CHECK-LABEL: define {{.*}}test_uint14//CHECK-SAME: {{.*}}(i16 {{.*}} [[VAL:%.*]]){{.*}}15//CHECK-NOT: bitcast16//CHECK: entry:17//CHECK-NEXT: ret i16 [[VAL]]18uint16_t test_uint(uint16_t p0)19{20 return asuint16(p0);21}22 23//CHECK-LABEL: define {{.*}}test_half24//CHECK-SAME: {{.*}}(half {{.*}} [[VAL:%.*]]){{.*}}25//CHECK: [[RES:%.*]] = bitcast half [[VAL]] to i1626//CHECK-NEXT: ret i16 [[RES]]27uint16_t test_half(half p0)28{29 return asuint16(p0);30}31 32//CHECK-LABEL: define {{.*}}test_vector_int33//CHECK-SAME: {{.*}}(<4 x i16> {{.*}} [[VAL:%.*]]){{.*}}34//CHECK-NOT: bitcast35//CHECK: entry:36//CHECK-NEXT: ret <4 x i16> [[VAL]]37uint16_t4 test_vector_int(int16_t4 p0)38{39 return asuint16(p0);40}41 42//CHECK-LABEL: define {{.*}}test_vector_uint43//CHECK-SAME: {{.*}}(<4 x i16> {{.*}} [[VAL:%.*]]){{.*}}44//CHECK-NOT: bitcast45//CHECK: entry:46//CHECK-NEXT: ret <4 x i16> [[VAL]]47uint16_t4 test_vector_uint(uint16_t4 p0)48{49 return asuint16(p0);50}51 52//CHECK-LABEL: define {{.*}}fn53//CHECK-SAME: {{.*}}(<4 x half> {{.*}} [[VAL:%.*]]){{.*}}54//CHECK: [[RES:%.*]] = bitcast <4 x half> [[VAL]] to <4 x i16>55//CHECK-NEXT: ret <4 x i16> [[RES]]56uint16_t4 fn(half4 p1)57{58 return asuint16(p1);59}60 61