brintos

brintos / llvm-project-archived public Read only

0
0
Text · 14.4 KiB · ee35e1c Raw
482 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2; RUN: llc -global-isel -mtriple=amdgcn-amd-amdhsa -stop-after=irtranslator < %s | FileCheck %s3 4define amdgpu_kernel void @system_one_as_acquire() {5  ; CHECK-LABEL: name: system_one_as_acquire6  ; CHECK: bb.1 (%ir-block.0):7  ; CHECK-NEXT:   liveins: $sgpr8_sgpr98  ; CHECK-NEXT: {{  $}}9  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr910  ; CHECK-NEXT:   G_FENCE 4, 211  ; CHECK-NEXT:   S_ENDPGM 012  fence syncscope("one-as") acquire13  ret void14}15 16define amdgpu_kernel void @system_one_as_release() {17  ; CHECK-LABEL: name: system_one_as_release18  ; CHECK: bb.1 (%ir-block.0):19  ; CHECK-NEXT:   liveins: $sgpr8_sgpr920  ; CHECK-NEXT: {{  $}}21  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr922  ; CHECK-NEXT:   G_FENCE 5, 223  ; CHECK-NEXT:   S_ENDPGM 024  fence syncscope("one-as") release25  ret void26}27 28define amdgpu_kernel void @system_one_as_acq_rel() {29  ; CHECK-LABEL: name: system_one_as_acq_rel30  ; CHECK: bb.1 (%ir-block.0):31  ; CHECK-NEXT:   liveins: $sgpr8_sgpr932  ; CHECK-NEXT: {{  $}}33  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr934  ; CHECK-NEXT:   G_FENCE 6, 235  ; CHECK-NEXT:   S_ENDPGM 036  fence syncscope("one-as") acq_rel37  ret void38}39 40define amdgpu_kernel void @system_one_as_seq_cst() {41  ; CHECK-LABEL: name: system_one_as_seq_cst42  ; CHECK: bb.1 (%ir-block.0):43  ; CHECK-NEXT:   liveins: $sgpr8_sgpr944  ; CHECK-NEXT: {{  $}}45  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr946  ; CHECK-NEXT:   G_FENCE 7, 247  ; CHECK-NEXT:   S_ENDPGM 048  fence syncscope("one-as") seq_cst49  ret void50}51 52define amdgpu_kernel void @singlethread_one_as_acquire() {53  ; CHECK-LABEL: name: singlethread_one_as_acquire54  ; CHECK: bb.1 (%ir-block.0):55  ; CHECK-NEXT:   liveins: $sgpr8_sgpr956  ; CHECK-NEXT: {{  $}}57  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr958  ; CHECK-NEXT:   G_FENCE 4, 359  ; CHECK-NEXT:   S_ENDPGM 060  fence syncscope("singlethread-one-as") acquire61  ret void62}63 64define amdgpu_kernel void @singlethread_one_as_release() {65  ; CHECK-LABEL: name: singlethread_one_as_release66  ; CHECK: bb.1 (%ir-block.0):67  ; CHECK-NEXT:   liveins: $sgpr8_sgpr968  ; CHECK-NEXT: {{  $}}69  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr970  ; CHECK-NEXT:   G_FENCE 5, 371  ; CHECK-NEXT:   S_ENDPGM 072  fence syncscope("singlethread-one-as") release73  ret void74}75 76define amdgpu_kernel void @singlethread_one_as_acq_rel() {77  ; CHECK-LABEL: name: singlethread_one_as_acq_rel78  ; CHECK: bb.1 (%ir-block.0):79  ; CHECK-NEXT:   liveins: $sgpr8_sgpr980  ; CHECK-NEXT: {{  $}}81  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr982  ; CHECK-NEXT:   G_FENCE 6, 383  ; CHECK-NEXT:   S_ENDPGM 084  fence syncscope("singlethread-one-as") acq_rel85  ret void86}87 88define amdgpu_kernel void @singlethread_one_as_seq_cst() {89  ; CHECK-LABEL: name: singlethread_one_as_seq_cst90  ; CHECK: bb.1 (%ir-block.0):91  ; CHECK-NEXT:   liveins: $sgpr8_sgpr992  ; CHECK-NEXT: {{  $}}93  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr994  ; CHECK-NEXT:   G_FENCE 7, 395  ; CHECK-NEXT:   S_ENDPGM 096  fence syncscope("singlethread-one-as") seq_cst97  ret void98}99 100define amdgpu_kernel void @agent_one_as_acquire() {101  ; CHECK-LABEL: name: agent_one_as_acquire102  ; CHECK: bb.1 (%ir-block.0):103  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9104  ; CHECK-NEXT: {{  $}}105  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9106  ; CHECK-NEXT:   G_FENCE 4, 4107  ; CHECK-NEXT:   S_ENDPGM 0108  fence syncscope("agent-one-as") acquire109  ret void110}111 112define amdgpu_kernel void @agent_one_as_release() {113  ; CHECK-LABEL: name: agent_one_as_release114  ; CHECK: bb.1 (%ir-block.0):115  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9116  ; CHECK-NEXT: {{  $}}117  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9118  ; CHECK-NEXT:   G_FENCE 5, 4119  ; CHECK-NEXT:   S_ENDPGM 0120  fence syncscope("agent-one-as") release121  ret void122}123 124define amdgpu_kernel void @agent_one_as_acq_rel() {125  ; CHECK-LABEL: name: agent_one_as_acq_rel126  ; CHECK: bb.1 (%ir-block.0):127  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9128  ; CHECK-NEXT: {{  $}}129  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9130  ; CHECK-NEXT:   G_FENCE 6, 4131  ; CHECK-NEXT:   S_ENDPGM 0132  fence syncscope("agent-one-as") acq_rel133  ret void134}135 136define amdgpu_kernel void @agent_one_as_seq_cst() {137  ; CHECK-LABEL: name: agent_one_as_seq_cst138  ; CHECK: bb.1 (%ir-block.0):139  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9140  ; CHECK-NEXT: {{  $}}141  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9142  ; CHECK-NEXT:   G_FENCE 7, 4143  ; CHECK-NEXT:   S_ENDPGM 0144  fence syncscope("agent-one-as") seq_cst145  ret void146}147 148define amdgpu_kernel void @workgroup_one_as_acquire() {149  ; CHECK-LABEL: name: workgroup_one_as_acquire150  ; CHECK: bb.1 (%ir-block.0):151  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9152  ; CHECK-NEXT: {{  $}}153  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9154  ; CHECK-NEXT:   G_FENCE 4, 5155  ; CHECK-NEXT:   S_ENDPGM 0156  fence syncscope("workgroup-one-as") acquire157  ret void158}159 160define amdgpu_kernel void @workgroup_one_as_release() {161  ; CHECK-LABEL: name: workgroup_one_as_release162  ; CHECK: bb.1 (%ir-block.0):163  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9164  ; CHECK-NEXT: {{  $}}165  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9166  ; CHECK-NEXT:   G_FENCE 5, 5167  ; CHECK-NEXT:   S_ENDPGM 0168  fence syncscope("workgroup-one-as") release169  ret void170}171 172define amdgpu_kernel void @workgroup_one_as_acq_rel() {173  ; CHECK-LABEL: name: workgroup_one_as_acq_rel174  ; CHECK: bb.1 (%ir-block.0):175  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9176  ; CHECK-NEXT: {{  $}}177  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9178  ; CHECK-NEXT:   G_FENCE 6, 5179  ; CHECK-NEXT:   S_ENDPGM 0180  fence syncscope("workgroup-one-as") acq_rel181  ret void182}183 184define amdgpu_kernel void @workgroup_one_as_seq_cst() {185  ; CHECK-LABEL: name: workgroup_one_as_seq_cst186  ; CHECK: bb.1 (%ir-block.0):187  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9188  ; CHECK-NEXT: {{  $}}189  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9190  ; CHECK-NEXT:   G_FENCE 7, 5191  ; CHECK-NEXT:   S_ENDPGM 0192  fence syncscope("workgroup-one-as") seq_cst193  ret void194}195 196define amdgpu_kernel void @wavefront_one_as_acquire() {197  ; CHECK-LABEL: name: wavefront_one_as_acquire198  ; CHECK: bb.1 (%ir-block.0):199  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9200  ; CHECK-NEXT: {{  $}}201  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9202  ; CHECK-NEXT:   G_FENCE 4, 6203  ; CHECK-NEXT:   S_ENDPGM 0204  fence syncscope("wavefront-one-as") acquire205  ret void206}207 208define amdgpu_kernel void @wavefront_one_as_release() {209  ; CHECK-LABEL: name: wavefront_one_as_release210  ; CHECK: bb.1 (%ir-block.0):211  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9212  ; CHECK-NEXT: {{  $}}213  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9214  ; CHECK-NEXT:   G_FENCE 5, 6215  ; CHECK-NEXT:   S_ENDPGM 0216  fence syncscope("wavefront-one-as") release217  ret void218}219 220define amdgpu_kernel void @wavefront_one_as_acq_rel() {221  ; CHECK-LABEL: name: wavefront_one_as_acq_rel222  ; CHECK: bb.1 (%ir-block.0):223  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9224  ; CHECK-NEXT: {{  $}}225  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9226  ; CHECK-NEXT:   G_FENCE 6, 6227  ; CHECK-NEXT:   S_ENDPGM 0228  fence syncscope("wavefront-one-as") acq_rel229  ret void230}231 232define amdgpu_kernel void @wavefront_one_as_seq_cst() {233  ; CHECK-LABEL: name: wavefront_one_as_seq_cst234  ; CHECK: bb.1 (%ir-block.0):235  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9236  ; CHECK-NEXT: {{  $}}237  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9238  ; CHECK-NEXT:   G_FENCE 7, 6239  ; CHECK-NEXT:   S_ENDPGM 0240  fence syncscope("wavefront-one-as") seq_cst241  ret void242}243 244define amdgpu_kernel void @system_acquire() {245  ; CHECK-LABEL: name: system_acquire246  ; CHECK: bb.1.entry:247  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9248  ; CHECK-NEXT: {{  $}}249  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9250  ; CHECK-NEXT:   S_ENDPGM 0251entry:252  ret void253}254 255define amdgpu_kernel void @system_release() {256  ; CHECK-LABEL: name: system_release257  ; CHECK: bb.1 (%ir-block.0):258  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9259  ; CHECK-NEXT: {{  $}}260  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9261  ; CHECK-NEXT:   G_FENCE 5, 1262  ; CHECK-NEXT:   S_ENDPGM 0263  fence release264  ret void265}266 267define amdgpu_kernel void @system_acq_rel() {268  ; CHECK-LABEL: name: system_acq_rel269  ; CHECK: bb.1 (%ir-block.0):270  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9271  ; CHECK-NEXT: {{  $}}272  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9273  ; CHECK-NEXT:   G_FENCE 6, 1274  ; CHECK-NEXT:   S_ENDPGM 0275  fence acq_rel276  ret void277}278 279define amdgpu_kernel void @system_seq_cst() {280  ; CHECK-LABEL: name: system_seq_cst281  ; CHECK: bb.1 (%ir-block.0):282  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9283  ; CHECK-NEXT: {{  $}}284  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9285  ; CHECK-NEXT:   G_FENCE 7, 1286  ; CHECK-NEXT:   S_ENDPGM 0287  fence seq_cst288  ret void289}290 291define amdgpu_kernel void @singlethread_acquire() {292  ; CHECK-LABEL: name: singlethread_acquire293  ; CHECK: bb.1 (%ir-block.0):294  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9295  ; CHECK-NEXT: {{  $}}296  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9297  ; CHECK-NEXT:   G_FENCE 4, 0298  ; CHECK-NEXT:   S_ENDPGM 0299  fence syncscope("singlethread") acquire300  ret void301}302 303define amdgpu_kernel void @singlethread_release() {304  ; CHECK-LABEL: name: singlethread_release305  ; CHECK: bb.1 (%ir-block.0):306  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9307  ; CHECK-NEXT: {{  $}}308  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9309  ; CHECK-NEXT:   G_FENCE 5, 0310  ; CHECK-NEXT:   S_ENDPGM 0311  fence syncscope("singlethread") release312  ret void313}314 315define amdgpu_kernel void @singlethread_acq_rel() {316  ; CHECK-LABEL: name: singlethread_acq_rel317  ; CHECK: bb.1 (%ir-block.0):318  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9319  ; CHECK-NEXT: {{  $}}320  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9321  ; CHECK-NEXT:   G_FENCE 6, 0322  ; CHECK-NEXT:   S_ENDPGM 0323  fence syncscope("singlethread") acq_rel324  ret void325}326 327define amdgpu_kernel void @singlethread_seq_cst() {328  ; CHECK-LABEL: name: singlethread_seq_cst329  ; CHECK: bb.1 (%ir-block.0):330  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9331  ; CHECK-NEXT: {{  $}}332  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9333  ; CHECK-NEXT:   G_FENCE 7, 0334  ; CHECK-NEXT:   S_ENDPGM 0335  fence syncscope("singlethread") seq_cst336  ret void337}338 339define amdgpu_kernel void @agent_acquire() {340  ; CHECK-LABEL: name: agent_acquire341  ; CHECK: bb.1 (%ir-block.0):342  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9343  ; CHECK-NEXT: {{  $}}344  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9345  ; CHECK-NEXT:   G_FENCE 4, 7346  ; CHECK-NEXT:   S_ENDPGM 0347  fence syncscope("agent") acquire348  ret void349}350 351define amdgpu_kernel void @agent_release() {352  ; CHECK-LABEL: name: agent_release353  ; CHECK: bb.1 (%ir-block.0):354  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9355  ; CHECK-NEXT: {{  $}}356  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9357  ; CHECK-NEXT:   G_FENCE 5, 7358  ; CHECK-NEXT:   S_ENDPGM 0359  fence syncscope("agent") release360  ret void361}362 363define amdgpu_kernel void @agent_acq_rel() {364  ; CHECK-LABEL: name: agent_acq_rel365  ; CHECK: bb.1 (%ir-block.0):366  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9367  ; CHECK-NEXT: {{  $}}368  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9369  ; CHECK-NEXT:   G_FENCE 6, 7370  ; CHECK-NEXT:   S_ENDPGM 0371  fence syncscope("agent") acq_rel372  ret void373}374 375define amdgpu_kernel void @agent_seq_cst() {376  ; CHECK-LABEL: name: agent_seq_cst377  ; CHECK: bb.1 (%ir-block.0):378  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9379  ; CHECK-NEXT: {{  $}}380  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9381  ; CHECK-NEXT:   G_FENCE 7, 7382  ; CHECK-NEXT:   S_ENDPGM 0383  fence syncscope("agent") seq_cst384  ret void385}386 387define amdgpu_kernel void @workgroup_acquire() {388  ; CHECK-LABEL: name: workgroup_acquire389  ; CHECK: bb.1 (%ir-block.0):390  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9391  ; CHECK-NEXT: {{  $}}392  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9393  ; CHECK-NEXT:   G_FENCE 4, 8394  ; CHECK-NEXT:   S_ENDPGM 0395  fence syncscope("workgroup") acquire396  ret void397}398 399define amdgpu_kernel void @workgroup_release() {400  ; CHECK-LABEL: name: workgroup_release401  ; CHECK: bb.1 (%ir-block.0):402  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9403  ; CHECK-NEXT: {{  $}}404  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9405  ; CHECK-NEXT:   G_FENCE 5, 8406  ; CHECK-NEXT:   S_ENDPGM 0407  fence syncscope("workgroup") release408  ret void409}410 411define amdgpu_kernel void @workgroup_acq_rel() {412  ; CHECK-LABEL: name: workgroup_acq_rel413  ; CHECK: bb.1 (%ir-block.0):414  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9415  ; CHECK-NEXT: {{  $}}416  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9417  ; CHECK-NEXT:   G_FENCE 6, 8418  ; CHECK-NEXT:   S_ENDPGM 0419  fence syncscope("workgroup") acq_rel420  ret void421}422 423define amdgpu_kernel void @workgroup_seq_cst() {424  ; CHECK-LABEL: name: workgroup_seq_cst425  ; CHECK: bb.1 (%ir-block.0):426  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9427  ; CHECK-NEXT: {{  $}}428  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9429  ; CHECK-NEXT:   G_FENCE 7, 8430  ; CHECK-NEXT:   S_ENDPGM 0431  fence syncscope("workgroup") seq_cst432  ret void433}434 435define amdgpu_kernel void @wavefront_acquire() {436  ; CHECK-LABEL: name: wavefront_acquire437  ; CHECK: bb.1 (%ir-block.0):438  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9439  ; CHECK-NEXT: {{  $}}440  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9441  ; CHECK-NEXT:   G_FENCE 4, 9442  ; CHECK-NEXT:   S_ENDPGM 0443  fence syncscope("wavefront") acquire444  ret void445}446 447define amdgpu_kernel void @wavefront_release() {448  ; CHECK-LABEL: name: wavefront_release449  ; CHECK: bb.1 (%ir-block.0):450  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9451  ; CHECK-NEXT: {{  $}}452  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9453  ; CHECK-NEXT:   G_FENCE 5, 9454  ; CHECK-NEXT:   S_ENDPGM 0455  fence syncscope("wavefront") release456  ret void457}458 459define amdgpu_kernel void @wavefront_acq_rel() {460  ; CHECK-LABEL: name: wavefront_acq_rel461  ; CHECK: bb.1 (%ir-block.0):462  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9463  ; CHECK-NEXT: {{  $}}464  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9465  ; CHECK-NEXT:   G_FENCE 6, 9466  ; CHECK-NEXT:   S_ENDPGM 0467  fence syncscope("wavefront") acq_rel468  ret void469}470 471define amdgpu_kernel void @wavefront_seq_cst() {472  ; CHECK-LABEL: name: wavefront_seq_cst473  ; CHECK: bb.1 (%ir-block.0):474  ; CHECK-NEXT:   liveins: $sgpr8_sgpr9475  ; CHECK-NEXT: {{  $}}476  ; CHECK-NEXT:   [[COPY:%[0-9]+]]:_(p4) = COPY $sgpr8_sgpr9477  ; CHECK-NEXT:   G_FENCE 7, 9478  ; CHECK-NEXT:   S_ENDPGM 0479  fence syncscope("wavefront") seq_cst480  ret void481}482