# 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 ...