brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.5 KiB · 0ebbd13 Raw
259 lines · plain
1; RUN: llc < %s -mtriple=nvptx64 -mcpu=sm_86 -mattr=+ptx72 | FileCheck %s2; RUN: %if ptxas-sm_86 && ptxas-isa-7.2 %{ llc < %s -mtriple=nvptx64 -mcpu=sm_86 -mattr=+ptx72 | %ptxas-verify -arch=sm_86 %}3 4; CHECK-LABEL: fmin_xorsign_abs_f165define half @fmin_xorsign_abs_f16(half %0, half %1) {6  ; CHECK-NOT: call7  ; CHECK: min.xorsign.abs.f168  %res = call half @llvm.nvvm.fmin.xorsign.abs.f16(half %0, half %1)9  ret half %res10}11 12; CHECK-LABEL: fmin_ftz_xorsign_abs_f1613define half @fmin_ftz_xorsign_abs_f16(half %0, half %1) {14  ; CHECK-NOT: call15  ; CHECK: min.ftz.xorsign.abs.f1616  %res = call half @llvm.nvvm.fmin.ftz.xorsign.abs.f16(half %0, half %1)17  ret half %res18}19 20; CHECK-LABEL: fmin_nan_xorsign_abs_f1621define half @fmin_nan_xorsign_abs_f16(half %0, half %1) {22  ; CHECK-NOT: call23  ; CHECK: min.NaN.xorsign.abs.f1624  %res = call half @llvm.nvvm.fmin.nan.xorsign.abs.f16(half %0, half %1)25  ret half %res26}27 28; CHECK-LABEL: fmin_ftz_nan_xorsign_abs_f1629define half @fmin_ftz_nan_xorsign_abs_f16(half %0, half %1) {30  ; CHECK-NOT: call31  ; CHECK: min.ftz.NaN.xorsign.abs.f1632  %res = call half @llvm.nvvm.fmin.ftz.nan.xorsign.abs.f16(half %0, half %1)33  ret half %res34}35 36; CHECK-LABEL: fmin_xorsign_abs_f16x237define <2 x half> @fmin_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {38  ; CHECK-NOT: call39  ; CHECK: min.xorsign.abs.f16x240  %res = call <2 x half> @llvm.nvvm.fmin.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)41  ret <2 x half> %res42}43 44; CHECK-LABEL: fmin_ftz_xorsign_abs_f16x245define <2 x half> @fmin_ftz_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {46  ; CHECK-NOT: call47  ; CHECK: min.ftz.xorsign.abs.f16x248  %res = call <2 x half> @llvm.nvvm.fmin.ftz.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)49  ret <2 x half> %res50}51 52; CHECK-LABEL: fmin_nan_xorsign_abs_f16x253define <2 x half> @fmin_nan_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {54  ; CHECK-NOT: call55  ; CHECK: min.NaN.xorsign.abs.f16x256  %res = call <2 x half> @llvm.nvvm.fmin.nan.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)57  ret <2 x half> %res58}59 60; CHECK-LABEL: fmin_ftz_nan_xorsign_abs_f16x261define <2 x half> @fmin_ftz_nan_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {62  ; CHECK-NOT: call63  ; CHECK: min.ftz.NaN.xorsign.abs.f16x264  %res = call <2 x half> @llvm.nvvm.fmin.ftz.nan.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)65  ret <2 x half> %res66}67 68; CHECK-LABEL: fmin_xorsign_abs_bf1669define bfloat @fmin_xorsign_abs_bf16(bfloat %0, bfloat %1) {70  ; CHECK-NOT: call71  ; CHECK: min.xorsign.abs.bf1672  %res = call bfloat @llvm.nvvm.fmin.xorsign.abs.bf16(bfloat %0, bfloat %1)73  ret bfloat %res74}75 76; CHECK-LABEL: fmin_nan_xorsign_abs_bf1677define bfloat @fmin_nan_xorsign_abs_bf16(bfloat %0, bfloat %1) {78  ; CHECK-NOT: call79  ; CHECK: min.NaN.xorsign.abs.bf1680  %res = call bfloat @llvm.nvvm.fmin.nan.xorsign.abs.bf16(bfloat %0, bfloat %1)81  ret bfloat %res82}83 84; CHECK-LABEL: fmin_xorsign_abs_bf16x285define <2 x bfloat> @fmin_xorsign_abs_bf16x2(<2 x bfloat> %0, <2 x bfloat> %1) {86  ; CHECK-NOT: call87  ; CHECK: min.xorsign.abs.bf16x288  %res = call <2 x bfloat> @llvm.nvvm.fmin.xorsign.abs.bf16x2(<2 x bfloat> %0, <2 x bfloat> %1)89  ret <2 x bfloat> %res90}91 92; CHECK-LABEL: fmin_nan_xorsign_abs_bf16x293define <2 x bfloat> @fmin_nan_xorsign_abs_bf16x2(<2 x bfloat> %0, <2 x bfloat> %1) {94  ; CHECK-NOT: call95  ; CHECK: min.NaN.xorsign.abs.bf16x296  %res = call <2 x bfloat> @llvm.nvvm.fmin.nan.xorsign.abs.bf16x2(<2 x bfloat> %0, <2 x bfloat> %1)97  ret <2 x bfloat> %res98}99 100; CHECK-LABEL: fmin_xorsign_abs_f101define float @fmin_xorsign_abs_f(float %0, float %1) {102  ; CHECK-NOT: call103  ; CHECK: min.xorsign.abs.f104  %res = call float @llvm.nvvm.fmin.xorsign.abs.f(float %0, float %1)105  ret float %res106}107 108; CHECK-LABEL: fmin_ftz_xorsign_abs_f109define float @fmin_ftz_xorsign_abs_f(float %0, float %1) {110  ; CHECK-NOT: call111  ; CHECK: min.ftz.xorsign.abs.f112  %res = call float @llvm.nvvm.fmin.ftz.xorsign.abs.f(float %0, float %1)113  ret float %res114}115 116; CHECK-LABEL: fmin_nan_xorsign_abs_f117define float @fmin_nan_xorsign_abs_f(float %0, float %1) {118  ; CHECK-NOT: call119  ; CHECK: min.NaN.xorsign.abs.f120  %res = call float @llvm.nvvm.fmin.nan.xorsign.abs.f(float %0, float %1)121  ret float %res122}123 124; CHECK-LABEL: fmin_ftz_nan_xorsign_abs_f125define float @fmin_ftz_nan_xorsign_abs_f(float %0, float %1) {126  ; CHECK-NOT: call127  ; CHECK: min.ftz.NaN.xorsign.abs.f128  %res = call float @llvm.nvvm.fmin.ftz.nan.xorsign.abs.f(float %0, float %1)129  ret float %res130}131 132; CHECK-LABEL: fmax_xorsign_abs_f16133define half @fmax_xorsign_abs_f16(half %0, half %1) {134  ; CHECK-NOT: call135  ; CHECK: max.xorsign.abs.f16136  %res = call half @llvm.nvvm.fmax.xorsign.abs.f16(half %0, half %1)137  ret half %res138}139 140; CHECK-LABEL: fmax_ftz_xorsign_abs_f16141define half @fmax_ftz_xorsign_abs_f16(half %0, half %1) {142  ; CHECK-NOT: call143  ; CHECK: max.ftz.xorsign.abs.f16144  %res = call half @llvm.nvvm.fmax.ftz.xorsign.abs.f16(half %0, half %1)145  ret half %res146}147 148; CHECK-LABEL: fmax_nan_xorsign_abs_f16149define half @fmax_nan_xorsign_abs_f16(half %0, half %1) {150  ; CHECK-NOT: call151  ; CHECK: max.NaN.xorsign.abs.f16152  %res = call half @llvm.nvvm.fmax.nan.xorsign.abs.f16(half %0, half %1)153  ret half %res154}155 156; CHECK-LABEL: fmax_ftz_nan_xorsign_abs_f16157define half @fmax_ftz_nan_xorsign_abs_f16(half %0, half %1) {158  ; CHECK-NOT: call159  ; CHECK: max.ftz.NaN.xorsign.abs.f16160  %res = call half @llvm.nvvm.fmax.ftz.nan.xorsign.abs.f16(half %0, half %1)161  ret half %res162}163 164; CHECK-LABEL: fmax_xorsign_abs_f16x2165define <2 x half> @fmax_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {166  ; CHECK-NOT: call167  ; CHECK: max.xorsign.abs.f16x2168  %res = call <2 x half> @llvm.nvvm.fmax.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)169  ret <2 x half> %res170}171 172; CHECK-LABEL: fmax_ftz_xorsign_abs_f16x2173define <2 x half> @fmax_ftz_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {174  ; CHECK-NOT: call175  ; CHECK: max.ftz.xorsign.abs.f16x2176  %res = call <2 x half> @llvm.nvvm.fmax.ftz.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)177  ret <2 x half> %res178}179 180; CHECK-LABEL: fmax_nan_xorsign_abs_f16x2181define <2 x half> @fmax_nan_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {182  ; CHECK-NOT: call183  ; CHECK: max.NaN.xorsign.abs.f16x2184  %res = call <2 x half> @llvm.nvvm.fmax.nan.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)185  ret <2 x half> %res186}187 188; CHECK-LABEL: fmax_ftz_nan_xorsign_abs_f16x2189define <2 x half> @fmax_ftz_nan_xorsign_abs_f16x2(<2 x half> %0, <2 x half> %1) {190  ; CHECK-NOT: call191  ; CHECK: max.ftz.NaN.xorsign.abs.f16x2192  %res = call <2 x half> @llvm.nvvm.fmax.ftz.nan.xorsign.abs.f16x2(<2 x half> %0, <2 x half> %1)193  ret <2 x half> %res194}195 196; CHECK-LABEL: fmax_xorsign_abs_bf16197define bfloat @fmax_xorsign_abs_bf16(bfloat %0, bfloat %1) {198  ; CHECK-NOT: call199  ; CHECK: max.xorsign.abs.bf16200  %res = call bfloat @llvm.nvvm.fmax.xorsign.abs.bf16(bfloat %0, bfloat %1)201  ret bfloat %res202}203 204; CHECK-LABEL: fmax_nan_xorsign_abs_bf16205define bfloat @fmax_nan_xorsign_abs_bf16(bfloat %0, bfloat %1) {206  ; CHECK-NOT: call207  ; CHECK: max.NaN.xorsign.abs.bf16208  %res = call bfloat @llvm.nvvm.fmax.nan.xorsign.abs.bf16(bfloat %0, bfloat %1)209  ret bfloat %res210}211 212; CHECK-LABEL: fmax_xorsign_abs_bf16x2213define <2 x bfloat> @fmax_xorsign_abs_bf16x2(<2 x bfloat> %0, <2 x bfloat> %1) {214  ; CHECK-NOT: call215  ; CHECK: max.xorsign.abs.bf16x2216  %res = call <2 x bfloat> @llvm.nvvm.fmax.xorsign.abs.bf16x2(<2 x bfloat> %0, <2 x bfloat> %1)217  ret <2 x bfloat> %res218}219 220; CHECK-LABEL: fmax_nan_xorsign_abs_bf16x2221define <2 x bfloat> @fmax_nan_xorsign_abs_bf16x2(<2 x bfloat> %0, <2 x bfloat> %1) {222  ; CHECK-NOT: call223  ; CHECK: max.NaN.xorsign.abs.bf16x2224  %res = call <2 x bfloat> @llvm.nvvm.fmax.nan.xorsign.abs.bf16x2(<2 x bfloat> %0, <2 x bfloat> %1)225  ret <2 x bfloat> %res226}227 228; CHECK-LABEL: fmax_xorsign_abs_f229define float @fmax_xorsign_abs_f(float %0, float %1) {230  ; CHECK-NOT: call231  ; CHECK: max.xorsign.abs.f232  %res = call float @llvm.nvvm.fmax.xorsign.abs.f(float %0, float %1)233  ret float %res234}235 236; CHECK-LABEL: fmax_ftz_xorsign_abs_f237define float @fmax_ftz_xorsign_abs_f(float %0, float %1) {238  ; CHECK-NOT: call239  ; CHECK: max.ftz.xorsign.abs.f240  %res = call float @llvm.nvvm.fmax.ftz.xorsign.abs.f(float %0, float %1)241  ret float %res242}243 244; CHECK-LABEL: fmax_nan_xorsign_abs_f245define float @fmax_nan_xorsign_abs_f(float %0, float %1) {246  ; CHECK-NOT: call247  ; CHECK: max.NaN.xorsign.abs.f248  %res = call float @llvm.nvvm.fmax.nan.xorsign.abs.f(float %0, float %1)249  ret float %res250}251 252; CHECK-LABEL: fmax_ftz_nan_xorsign_abs_f253define float @fmax_ftz_nan_xorsign_abs_f(float %0, float %1) {254  ; CHECK-NOT: call255  ; CHECK: max.ftz.NaN.xorsign.abs.f256  %res = call float @llvm.nvvm.fmax.ftz.nan.xorsign.abs.f(float %0, float %1)257  ret float %res258}259