brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.2 KiB · 1c0b648 Raw
84 lines · plain
1; RUN: opt -S -passes=dxil-intrinsic-expansion,dxil-op-lower -mtriple=dxil-pc-shadermodel6.0-library < %s | FileCheck %s2 3; Make sure dxil operation function calls for all are generated for float and half.4 5; CHECK-LABEL: all_bool6; CHECK: icmp ne i1 %{{.*}}, false7define noundef i1 @all_bool(i1 noundef %p0) {8entry:9  %dx.all = call i1 @llvm.dx.all.i1(i1 %p0)10  ret i1 %dx.all11}12 13; CHECK-LABEL: all_int64_t14; CHECK: icmp ne i64 %{{.*}}, 015define noundef i1 @all_int64_t(i64 noundef %p0) {16entry:17  %dx.all = call i1 @llvm.dx.all.i64(i64 %p0)18  ret i1 %dx.all19}20 21; CHECK-LABEL: all_int22; CHECK: icmp ne i32 %{{.*}}, 023define noundef i1 @all_int(i32 noundef %p0) {24entry:25  %dx.all = call i1 @llvm.dx.all.i32(i32 %p0)26  ret i1 %dx.all27}28 29; CHECK-LABEL: all_int16_t30; CHECK: icmp ne i16 %{{.*}}, 031define noundef i1 @all_int16_t(i16 noundef %p0) {32entry:33  %dx.all = call i1 @llvm.dx.all.i16(i16 %p0)34  ret i1 %dx.all35}36 37; CHECK-LABEL: all_double38; CHECK: fcmp une double %{{.*}}, 0.000000e+0039define noundef i1 @all_double(double noundef %p0) {40entry:41  %dx.all = call i1 @llvm.dx.all.f64(double %p0)42  ret i1 %dx.all43}44 45; CHECK-LABEL: all_float46; CHECK: fcmp une float %{{.*}}, 0.000000e+0047define noundef i1 @all_float(float noundef %p0) {48entry:49  %dx.all = call i1 @llvm.dx.all.f32(float %p0)50  ret i1 %dx.all51}52 53; CHECK-LABEL: all_half54; CHECK: fcmp une half %{{.*}}, 0xH000055define noundef i1 @all_half(half noundef %p0) {56entry:57  %dx.all = call i1 @llvm.dx.all.f16(half %p0)58  ret i1 %dx.all59}60 61; CHECK-LABEL: all_bool462; CHECK: icmp ne <4 x i1> %{{.*}}, zeroinitialize63; CHECK: extractelement <4 x i1> %{{.*}}, i64 064; CHECK: extractelement <4 x i1> %{{.*}}, i64 165; CHECK: and i1  %{{.*}}, %{{.*}}66; CHECK: extractelement <4 x i1> %{{.*}}, i64 267; CHECK: and i1  %{{.*}}, %{{.*}}68; CHECK: extractelement <4 x i1> %{{.*}}, i64 369; CHECK: and i1  %{{.*}}, %{{.*}}70define noundef i1 @all_bool4(<4 x i1> noundef %p0) {71entry:72  %dx.all = call i1 @llvm.dx.all.v4i1(<4 x i1> %p0)73  ret i1 %dx.all74}75 76declare i1 @llvm.dx.all.v4i1(<4 x i1>)77declare i1 @llvm.dx.all.i1(i1)78declare i1 @llvm.dx.all.i16(i16)79declare i1 @llvm.dx.all.i32(i32)80declare i1 @llvm.dx.all.i64(i64)81declare i1 @llvm.dx.all.f16(half)82declare i1 @llvm.dx.all.f32(float)83declare i1 @llvm.dx.all.f64(double)84