brintos

brintos / llvm-project-archived public Read only

0
0
Text · 12.2 KiB · 4b214e6 Raw
276 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx900 -run-pass=legalizer %s -o - | FileCheck -check-prefix=GFX9  %s3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1200 -mattr=-real-true16 -run-pass=legalizer %s -o - | FileCheck -check-prefixes=GFX12  %s4 5---6name: test_fmaximum_f167body: |8  bb.0:9    liveins: $vgpr0, $vgpr110 11    ; GFX9-LABEL: name: test_fmaximum_f1612    ; GFX9: liveins: $vgpr0, $vgpr113    ; GFX9-NEXT: {{  $}}14    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr015    ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)16    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr117    ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)18    ; GFX9-NEXT: [[FMAXNUM_IEEE:%[0-9]+]]:_(s16) = G_FMAXNUM_IEEE [[TRUNC]], [[TRUNC1]]19    ; GFX9-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[TRUNC]](s16), [[TRUNC1]]20    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH7E0021    ; GFX9-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[FCMP]](s1), [[FMAXNUM_IEEE]], [[C]]22    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s16) = COPY [[SELECT]](s16)23    ; GFX9-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY2]](s16)24    ; GFX9-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)25    ; GFX9-NEXT: SI_RETURN implicit $vgpr026    ;27    ; GFX12-LABEL: name: test_fmaximum_f1628    ; GFX12: liveins: $vgpr0, $vgpr129    ; GFX12-NEXT: {{  $}}30    ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr031    ; GFX12-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)32    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr133    ; GFX12-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[COPY1]](s32)34    ; GFX12-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s16) = G_FMAXIMUM [[TRUNC]], [[TRUNC1]]35    ; GFX12-NEXT: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[FMAXIMUM]](s16)36    ; GFX12-NEXT: $vgpr0 = COPY [[ANYEXT]](s32)37    ; GFX12-NEXT: SI_RETURN implicit $vgpr038    %0:_(s32) = COPY $vgpr039    %1:_(s16) = G_TRUNC %0(s32)40    %2:_(s32) = COPY $vgpr141    %3:_(s16) = G_TRUNC %2(s32)42    %4:_(s16) = G_FMAXIMUM %1, %343    %5:_(s32) = G_ANYEXT %4(s16)44    $vgpr0 = COPY %5(s32)45    SI_RETURN implicit $vgpr046...47---48name: test_fmaximum_f3249body: |50  bb.0:51    liveins: $vgpr0, $vgpr152 53    ; GFX9-LABEL: name: test_fmaximum_f3254    ; GFX9: liveins: $vgpr0, $vgpr155    ; GFX9-NEXT: {{  $}}56    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr057    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr158    ; GFX9-NEXT: [[FMAXNUM_IEEE:%[0-9]+]]:_(s32) = G_FMAXNUM_IEEE [[COPY]], [[COPY1]]59    ; GFX9-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[COPY]](s32), [[COPY1]]60    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 0x7FF800000000000061    ; GFX9-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[FCMP]](s1), [[FMAXNUM_IEEE]], [[C]]62    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[SELECT]](s32)63    ; GFX9-NEXT: $vgpr0 = COPY [[COPY2]](s32)64    ; GFX9-NEXT: SI_RETURN implicit $vgpr065    ;66    ; GFX12-LABEL: name: test_fmaximum_f3267    ; GFX12: liveins: $vgpr0, $vgpr168    ; GFX12-NEXT: {{  $}}69    ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr070    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr171    ; GFX12-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s32) = G_FMAXIMUM [[COPY]], [[COPY1]]72    ; GFX12-NEXT: $vgpr0 = COPY [[FMAXIMUM]](s32)73    ; GFX12-NEXT: SI_RETURN implicit $vgpr074    %0:_(s32) = COPY $vgpr075    %1:_(s32) = COPY $vgpr176    %2:_(s32) = G_FMAXIMUM %0, %177    $vgpr0 = COPY %2(s32)78    SI_RETURN implicit $vgpr079...80---81name: test_fmaximum_f6482body: |83  bb.0:84    liveins: $vgpr0_vgpr1, $vgpr2_vgpr385 86    ; GFX9-LABEL: name: test_fmaximum_f6487    ; GFX9: liveins: $vgpr0_vgpr1, $vgpr2_vgpr388    ; GFX9-NEXT: {{  $}}89    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr190    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr391    ; GFX9-NEXT: [[FMAXNUM_IEEE:%[0-9]+]]:_(s64) = G_FMAXNUM_IEEE [[COPY]], [[COPY1]]92    ; GFX9-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[COPY]](s64), [[COPY1]]93    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s64) = G_FCONSTANT double 0x7FF800000000000094    ; GFX9-NEXT: [[SELECT:%[0-9]+]]:_(s64) = G_SELECT [[FCMP]](s1), [[FMAXNUM_IEEE]], [[C]]95    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY [[SELECT]](s64)96    ; GFX9-NEXT: $vgpr0_vgpr1 = COPY [[COPY2]](s64)97    ; GFX9-NEXT: SI_RETURN implicit $vgpr0_vgpr198    ;99    ; GFX12-LABEL: name: test_fmaximum_f64100    ; GFX12: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3101    ; GFX12-NEXT: {{  $}}102    ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr1103    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr3104    ; GFX12-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s64) = G_FMAXIMUM [[COPY]], [[COPY1]]105    ; GFX12-NEXT: $vgpr0_vgpr1 = COPY [[FMAXIMUM]](s64)106    ; GFX12-NEXT: SI_RETURN implicit $vgpr0_vgpr1107    %0:_(s64) = COPY $vgpr0_vgpr1108    %1:_(s64) = COPY $vgpr2_vgpr3109    %2:_(s64) = G_FMAXIMUM %0, %1110    $vgpr0_vgpr1 = COPY %2(s64)111    SI_RETURN implicit $vgpr0_vgpr1112...113---114name: test_fmaximum_v2f16115body: |116  bb.0:117    liveins: $vgpr0, $vgpr1118 119    ; GFX9-LABEL: name: test_fmaximum_v2f16120    ; GFX9: liveins: $vgpr0, $vgpr1121    ; GFX9-NEXT: {{  $}}122    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0123    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1124    ; GFX9-NEXT: [[FMAXNUM_IEEE:%[0-9]+]]:_(<2 x s16>) = G_FMAXNUM_IEEE [[COPY]], [[COPY1]]125    ; GFX9-NEXT: [[BITCAST:%[0-9]+]]:_(s32) = G_BITCAST [[COPY]](<2 x s16>)126    ; GFX9-NEXT: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST]](s32)127    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 16128    ; GFX9-NEXT: [[LSHR:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST]], [[C]](s32)129    ; GFX9-NEXT: [[TRUNC1:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR]](s32)130    ; GFX9-NEXT: [[BITCAST1:%[0-9]+]]:_(s32) = G_BITCAST [[COPY1]](<2 x s16>)131    ; GFX9-NEXT: [[TRUNC2:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST1]](s32)132    ; GFX9-NEXT: [[LSHR1:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST1]], [[C]](s32)133    ; GFX9-NEXT: [[TRUNC3:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR1]](s32)134    ; GFX9-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[TRUNC]](s16), [[TRUNC2]]135    ; GFX9-NEXT: [[FCMP1:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[TRUNC1]](s16), [[TRUNC3]]136    ; GFX9-NEXT: [[C1:%[0-9]+]]:_(s16) = G_FCONSTANT half 0xH7E00137    ; GFX9-NEXT: [[BITCAST2:%[0-9]+]]:_(s32) = G_BITCAST [[FMAXNUM_IEEE]](<2 x s16>)138    ; GFX9-NEXT: [[TRUNC4:%[0-9]+]]:_(s16) = G_TRUNC [[BITCAST2]](s32)139    ; GFX9-NEXT: [[LSHR2:%[0-9]+]]:_(s32) = G_LSHR [[BITCAST2]], [[C]](s32)140    ; GFX9-NEXT: [[TRUNC5:%[0-9]+]]:_(s16) = G_TRUNC [[LSHR2]](s32)141    ; GFX9-NEXT: [[SELECT:%[0-9]+]]:_(s16) = G_SELECT [[FCMP]](s1), [[TRUNC4]], [[C1]]142    ; GFX9-NEXT: [[SELECT1:%[0-9]+]]:_(s16) = G_SELECT [[FCMP1]](s1), [[TRUNC5]], [[C1]]143    ; GFX9-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s16>) = G_BUILD_VECTOR [[SELECT]](s16), [[SELECT1]](s16)144    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s16>) = COPY [[BUILD_VECTOR]](<2 x s16>)145    ; GFX9-NEXT: $vgpr0 = COPY [[COPY2]](<2 x s16>)146    ; GFX9-NEXT: SI_RETURN implicit $vgpr0147    ;148    ; GFX12-LABEL: name: test_fmaximum_v2f16149    ; GFX12: liveins: $vgpr0, $vgpr1150    ; GFX12-NEXT: {{  $}}151    ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr0152    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s16>) = COPY $vgpr1153    ; GFX12-NEXT: [[FMAXIMUM:%[0-9]+]]:_(<2 x s16>) = G_FMAXIMUM [[COPY]], [[COPY1]]154    ; GFX12-NEXT: $vgpr0 = COPY [[FMAXIMUM]](<2 x s16>)155    ; GFX12-NEXT: SI_RETURN implicit $vgpr0156    %0:_(<2 x s16>) = COPY $vgpr0157    %1:_(<2 x s16>) = COPY $vgpr1158    %2:_(<2 x s16>) = G_FMAXIMUM %0, %1159    $vgpr0 = COPY %2(<2 x s16>)160    SI_RETURN implicit $vgpr0161...162---163name: test_fmaximum_v2f32164body: |165  bb.0:166    liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3167 168    ; GFX9-LABEL: name: test_fmaximum_v2f32169    ; GFX9: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3170    ; GFX9-NEXT: {{  $}}171    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0172    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1173    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2174    ; GFX9-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3175    ; GFX9-NEXT: [[FMAXNUM_IEEE:%[0-9]+]]:_(s32) = G_FMAXNUM_IEEE [[COPY]], [[COPY2]]176    ; GFX9-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[COPY]](s32), [[COPY2]]177    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 0x7FF8000000000000178    ; GFX9-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[FCMP]](s1), [[FMAXNUM_IEEE]], [[C]]179    ; GFX9-NEXT: [[COPY4:%[0-9]+]]:_(s32) = COPY [[SELECT]](s32)180    ; GFX9-NEXT: [[FMAXNUM_IEEE1:%[0-9]+]]:_(s32) = G_FMAXNUM_IEEE [[COPY1]], [[COPY3]]181    ; GFX9-NEXT: [[FCMP1:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[COPY1]](s32), [[COPY3]]182    ; GFX9-NEXT: [[SELECT1:%[0-9]+]]:_(s32) = G_SELECT [[FCMP1]](s1), [[FMAXNUM_IEEE1]], [[C]]183    ; GFX9-NEXT: [[COPY5:%[0-9]+]]:_(s32) = COPY [[SELECT1]](s32)184    ; GFX9-NEXT: $vgpr0 = COPY [[COPY4]](s32)185    ; GFX9-NEXT: $vgpr1 = COPY [[COPY5]](s32)186    ; GFX9-NEXT: SI_RETURN implicit $vgpr0, implicit $vgpr1187    ;188    ; GFX12-LABEL: name: test_fmaximum_v2f32189    ; GFX12: liveins: $vgpr0, $vgpr1, $vgpr2, $vgpr3190    ; GFX12-NEXT: {{  $}}191    ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0192    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1193    ; GFX12-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY $vgpr2194    ; GFX12-NEXT: [[COPY3:%[0-9]+]]:_(s32) = COPY $vgpr3195    ; GFX12-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s32) = G_FMAXIMUM [[COPY]], [[COPY2]]196    ; GFX12-NEXT: [[FMAXIMUM1:%[0-9]+]]:_(s32) = G_FMAXIMUM [[COPY1]], [[COPY3]]197    ; GFX12-NEXT: $vgpr0 = COPY [[FMAXIMUM]](s32)198    ; GFX12-NEXT: $vgpr1 = COPY [[FMAXIMUM1]](s32)199    ; GFX12-NEXT: SI_RETURN implicit $vgpr0, implicit $vgpr1200    %0:_(s32) = COPY $vgpr0201    %1:_(s32) = COPY $vgpr1202    %2:_(<2 x s32>) = G_BUILD_VECTOR %0(s32), %1(s32)203    %3:_(s32) = COPY $vgpr2204    %4:_(s32) = COPY $vgpr3205    %5:_(<2 x s32>) = G_BUILD_VECTOR %3(s32), %4(s32)206    %6:_(<2 x s32>) = G_FMAXIMUM %2, %5207    %7:_(s32), %8:_(s32) = G_UNMERGE_VALUES %6(<2 x s32>)208    $vgpr0 = COPY %7(s32)209    $vgpr1 = COPY %8(s32)210    SI_RETURN implicit $vgpr0, implicit $vgpr1211...212---213name: test_fmaximum_nsz_f32214body: |215  bb.0:216    liveins: $vgpr0, $vgpr1217 218    ; GFX9-LABEL: name: test_fmaximum_nsz_f32219    ; GFX9: liveins: $vgpr0, $vgpr1220    ; GFX9-NEXT: {{  $}}221    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0222    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1223    ; GFX9-NEXT: [[FMAXNUM_IEEE:%[0-9]+]]:_(s32) = G_FMAXNUM_IEEE [[COPY]], [[COPY1]]224    ; GFX9-NEXT: [[FCMP:%[0-9]+]]:_(s1) = G_FCMP floatpred(ord), [[COPY]](s32), [[COPY1]]225    ; GFX9-NEXT: [[C:%[0-9]+]]:_(s32) = G_FCONSTANT float 0x7FF8000000000000226    ; GFX9-NEXT: [[SELECT:%[0-9]+]]:_(s32) = G_SELECT [[FCMP]](s1), [[FMAXNUM_IEEE]], [[C]]227    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[SELECT]](s32)228    ; GFX9-NEXT: $vgpr0 = COPY [[COPY2]](s32)229    ; GFX9-NEXT: SI_RETURN implicit $vgpr0230    ;231    ; GFX12-LABEL: name: test_fmaximum_nsz_f32232    ; GFX12: liveins: $vgpr0, $vgpr1233    ; GFX12-NEXT: {{  $}}234    ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0235    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1236    ; GFX12-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s32) = nsz G_FMAXIMUM [[COPY]], [[COPY1]]237    ; GFX12-NEXT: $vgpr0 = COPY [[FMAXIMUM]](s32)238    ; GFX12-NEXT: SI_RETURN implicit $vgpr0239    %0:_(s32) = COPY $vgpr0240    %1:_(s32) = COPY $vgpr1241    %2:_(s32) = nsz G_FMAXIMUM %0, %1242    $vgpr0 = COPY %2(s32)243    SI_RETURN implicit $vgpr0244...245---246name: test_fmaximum_nnan_f32247body: |248  bb.0:249    liveins: $vgpr0, $vgpr1250 251    ; GFX9-LABEL: name: test_fmaximum_nnan_f32252    ; GFX9: liveins: $vgpr0, $vgpr1253    ; GFX9-NEXT: {{  $}}254    ; GFX9-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0255    ; GFX9-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1256    ; GFX9-NEXT: [[FMAXNUM_IEEE:%[0-9]+]]:_(s32) = G_FMAXNUM_IEEE [[COPY]], [[COPY1]]257    ; GFX9-NEXT: [[COPY2:%[0-9]+]]:_(s32) = COPY [[FMAXNUM_IEEE]](s32)258    ; GFX9-NEXT: $vgpr0 = COPY [[COPY2]](s32)259    ; GFX9-NEXT: SI_RETURN implicit $vgpr0260    ;261    ; GFX12-LABEL: name: test_fmaximum_nnan_f32262    ; GFX12: liveins: $vgpr0, $vgpr1263    ; GFX12-NEXT: {{  $}}264    ; GFX12-NEXT: [[COPY:%[0-9]+]]:_(s32) = COPY $vgpr0265    ; GFX12-NEXT: [[COPY1:%[0-9]+]]:_(s32) = COPY $vgpr1266    ; GFX12-NEXT: [[FMAXIMUM:%[0-9]+]]:_(s32) = nnan G_FMAXIMUM [[COPY]], [[COPY1]]267    ; GFX12-NEXT: $vgpr0 = COPY [[FMAXIMUM]](s32)268    ; GFX12-NEXT: SI_RETURN implicit $vgpr0269    %0:_(s32) = COPY $vgpr0270    %1:_(s32) = COPY $vgpr1271    %2:_(s32) = nnan G_FMAXIMUM %0, %1272    $vgpr0 = COPY %2(s32)273    SI_RETURN implicit $vgpr0274...275 276