| # RUN: llc -march=amdgcn -mcpu=hawaii -run-pass=none -o - %s | FileCheck -check-prefix=MCPU %s |
| # RUN: llc -march=amdgcn -mattr=+unaligned-access-mode -run-pass=none -o - %s | FileCheck -check-prefix=MATTR %s |
| |
| # FIXME: This overrides attributes that already are present. It should probably |
| # only touch functions without an existing attribute. |
| |
| # MCPU: @with_cpu_attr() #0 { |
| # MCPU: @no_cpu_attr() #1 { |
| |
| # MCPU: attributes #0 = { "target-cpu"="fiji" } |
| # MCPU: attributes #1 = { "target-cpu"="hawaii" } |
| |
| # MATTR: attributes #0 = { "target-cpu"="fiji" "target-features"="+unaligned-access-mode" } |
| # MATTR: attributes #1 = { "target-features"="+unaligned-access-mode" } |
| |
| --- | |
| define amdgpu_kernel void @with_cpu_attr() #0 { |
| ret void |
| } |
| |
| define amdgpu_kernel void @no_cpu_attr() { |
| ret void |
| } |
| |
| attributes #0 = { "target-cpu"="fiji" } |
| ... |
| |
| --- |
| name: with_cpu_attr |
| legalized: true |
| regBankSelected: true |
| tracksRegLiveness: true |
| |
| body: | |
| bb.0: |
| liveins: $sgpr0, $sgpr1 |
| |
| %0:sgpr(s32) = COPY $sgpr0 |
| %1:sgpr(s32) = COPY $sgpr1 |
| %2:vgpr(s32) = G_OR %0, %1 |
| S_ENDPGM 0, implicit %2 |
| ... |
| |
| --- |
| name: no_cpu_attr |
| legalized: true |
| regBankSelected: true |
| tracksRegLiveness: true |
| |
| body: | |
| bb.0: |
| liveins: $sgpr0, $sgpr1 |
| |
| %0:sgpr(s32) = COPY $sgpr0 |
| %1:sgpr(s32) = COPY $sgpr1 |
| %2:vgpr(s32) = G_OR %0, %1 |
| S_ENDPGM 0, implicit %2 |
| ... |