126 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=tahiti -run-pass=legalizer %s -o - | FileCheck %s3# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=fiji -run-pass=legalizer %s -o - | FileCheck %s4# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1010 -run-pass=legalizer %s -o - | FileCheck %s5# RUN: llc -mtriple=amdgcn-mesa-mesa3d -mcpu=gfx1100 -run-pass=legalizer %s -o - | FileCheck %s6 7---8name: test_fmad_s64_flush9machineFunctionInfo:10 mode:11 fp64-fp16-output-denormals: false12 fp64-fp16-input-denormals: false13 14body: |15 bb.0:16 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr517 18 ; CHECK-LABEL: name: test_fmad_s64_flush19 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr520 ; CHECK-NEXT: {{ $}}21 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr122 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr323 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr524 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[COPY1]]25 ; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[FMUL]], [[COPY2]]26 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FADD]](s64)27 %0:_(s64) = COPY $vgpr0_vgpr128 %1:_(s64) = COPY $vgpr2_vgpr329 %2:_(s64) = COPY $vgpr4_vgpr530 %3:_(s64) = G_FMAD %0, %1, %231 $vgpr0_vgpr1 = COPY %332...33 34---35name: test_fmad_v2s64_flush36machineFunctionInfo:37 mode:38 fp64-fp16-input-denormals: false39 fp64-fp16-output-denormals: false40 41body: |42 bb.0:43 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr1144 45 ; CHECK-LABEL: name: test_fmad_v2s64_flush46 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr1147 ; CHECK-NEXT: {{ $}}48 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr349 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr750 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr8_vgpr9_vgpr10_vgpr1151 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)52 ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)53 ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s64), [[UV5:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY2]](<2 x s64>)54 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[UV]], [[UV2]]55 ; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[FMUL]], [[UV4]]56 ; CHECK-NEXT: [[FMUL1:%[0-9]+]]:_(s64) = G_FMUL [[UV1]], [[UV3]]57 ; CHECK-NEXT: [[FADD1:%[0-9]+]]:_(s64) = G_FADD [[FMUL1]], [[UV5]]58 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[FADD]](s64), [[FADD1]](s64)59 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)60 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr361 %1:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr762 %2:_(<2 x s64>) = COPY $vgpr8_vgpr9_vgpr10_vgpr1163 %3:_(<2 x s64>) = G_FMAD %0, %1, %264 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %365...66 67---68name: test_fmad_s64_denorm69machineFunctionInfo:70 mode:71 fp64-fp16-input-denormals: true72 fp64-fp16-output-denormals: true73 74body: |75 bb.0:76 liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr577 78 ; CHECK-LABEL: name: test_fmad_s64_denorm79 ; CHECK: liveins: $vgpr0_vgpr1, $vgpr2_vgpr3, $vgpr4_vgpr580 ; CHECK-NEXT: {{ $}}81 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(s64) = COPY $vgpr0_vgpr182 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(s64) = COPY $vgpr2_vgpr383 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(s64) = COPY $vgpr4_vgpr584 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[COPY]], [[COPY1]]85 ; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[FMUL]], [[COPY2]]86 ; CHECK-NEXT: $vgpr0_vgpr1 = COPY [[FADD]](s64)87 %0:_(s64) = COPY $vgpr0_vgpr188 %1:_(s64) = COPY $vgpr2_vgpr389 %2:_(s64) = COPY $vgpr4_vgpr590 %3:_(s64) = G_FMAD %0, %1, %291 $vgpr0_vgpr1 = COPY %392...93 94---95name: test_fmad_v2s64_denorm96machineFunctionInfo:97 mode:98 fp64-fp16-input-denormals: true99 fp64-fp16-output-denormals: true100 101body: |102 bb.0:103 liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11104 105 ; CHECK-LABEL: name: test_fmad_v2s64_denorm106 ; CHECK: liveins: $vgpr0_vgpr1_vgpr2_vgpr3, $vgpr4_vgpr5_vgpr6_vgpr7, $vgpr8_vgpr9_vgpr10_vgpr11107 ; CHECK-NEXT: {{ $}}108 ; CHECK-NEXT: [[COPY:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3109 ; CHECK-NEXT: [[COPY1:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7110 ; CHECK-NEXT: [[COPY2:%[0-9]+]]:_(<2 x s64>) = COPY $vgpr8_vgpr9_vgpr10_vgpr11111 ; CHECK-NEXT: [[UV:%[0-9]+]]:_(s64), [[UV1:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY]](<2 x s64>)112 ; CHECK-NEXT: [[UV2:%[0-9]+]]:_(s64), [[UV3:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY1]](<2 x s64>)113 ; CHECK-NEXT: [[UV4:%[0-9]+]]:_(s64), [[UV5:%[0-9]+]]:_(s64) = G_UNMERGE_VALUES [[COPY2]](<2 x s64>)114 ; CHECK-NEXT: [[FMUL:%[0-9]+]]:_(s64) = G_FMUL [[UV]], [[UV2]]115 ; CHECK-NEXT: [[FADD:%[0-9]+]]:_(s64) = G_FADD [[FMUL]], [[UV4]]116 ; CHECK-NEXT: [[FMUL1:%[0-9]+]]:_(s64) = G_FMUL [[UV1]], [[UV3]]117 ; CHECK-NEXT: [[FADD1:%[0-9]+]]:_(s64) = G_FADD [[FMUL1]], [[UV5]]118 ; CHECK-NEXT: [[BUILD_VECTOR:%[0-9]+]]:_(<2 x s64>) = G_BUILD_VECTOR [[FADD]](s64), [[FADD1]](s64)119 ; CHECK-NEXT: $vgpr0_vgpr1_vgpr2_vgpr3 = COPY [[BUILD_VECTOR]](<2 x s64>)120 %0:_(<2 x s64>) = COPY $vgpr0_vgpr1_vgpr2_vgpr3121 %1:_(<2 x s64>) = COPY $vgpr4_vgpr5_vgpr6_vgpr7122 %2:_(<2 x s64>) = COPY $vgpr8_vgpr9_vgpr10_vgpr11123 %3:_(<2 x s64>) = G_FMAD %0, %1, %2124 $vgpr0_vgpr1_vgpr2_vgpr3 = COPY %3125...126