brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · c146c78 Raw
73 lines · plain
1; Check handling of the mftb instruction.2; For CPUs 601 and pwr3, the mftb instruction should be emitted.3; On all other CPUs (including generic, ppc, ppc64), the mfspr instruction 4; should be used instead. There should no longer be a deprecated warning 5; message emittedfor this instruction for any CPU.6 7; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr7 < %s 2>&1 \8; RUN:    | FileCheck %s --check-prefix=CHECK-MFSPR9; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -mcpu=pwr8 < %s 2>&1 \10; RUN:    | FileCheck %s --check-prefix=CHECK-MFSPR11; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s 2>&1 \12; RUN:    | FileCheck %s --check-prefix=CHECK-MFSPR13; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu  < %s 2>&1 \14; RUN:    | FileCheck %s --check-prefix=CHECK-MFSPR15; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu -mcpu=ppc < %s 2>&1 \16; RUN:    | FileCheck %s --check-prefix=CHECK-MFSPR17; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu -mcpu=601 < %s 2>&1 \18; RUN:    | FileCheck %s --check-prefix=CHECK-MFTB19; RUN: llc -verify-machineinstrs -mtriple=powerpc-unknown-linux-gnu -mcpu=pwr3 < %s 2>&1 \20; RUN:    | FileCheck %s --check-prefix=CHECK-MFTB21 22; CHECK-MFSPR-NOT: warning: deprecated23; CHECK-MFTB-NOT: warning: deprecated24 25define i32 @get_time() {26       %time = call i32 asm "mftb $0, 268", "=r"()27       ret i32 %time28; CHECK-MFSPR-LABEL: @get_time29; CHECK-MFSPR: mfspr 3, 26830; CHECK-MFSPR: blr31 32; CHECK-MFTB-LABEL: @get_time33; CHECK-MFTB: mftb 3, 26834; CHECK-MFTB: blr35}36 37define i32 @get_timeu() {38       %time = call i32 asm "mftb $0, 269", "=r"()39       ret i32 %time40; CHECK-MFSPR-LABEL: @get_timeu41; CHECK-MFSPR: mfspr 3, 26942; CHECK-MFSPR: blr43 44; CHECK-MFTB-LABEL: @get_timeu45; CHECK-MFTB: mftbu 346; CHECK-MFTB: blr47}48 49define i32 @get_time_e() {50       %time = call i32 asm "mftb $0", "=r"()51       ret i32 %time52; CHECK-MFSPR-LABEL: @get_time_e53; CHECK-MFSPR: mfspr 3, 26854; CHECK-MFSPR: blr55 56; CHECK-MFTB-LABEL: @get_time_e57; CHECK-MFTB: mftb 3, 26858; CHECK-MFTB: blr59}60 61define i32 @get_timeu_e() {62       %time = call i32 asm "mftbu $0", "=r"()63       ret i32 %time64; CHECK-MFSPR-LABEL: @get_timeu_e65; CHECK-MFSPR: mfspr 3, 26966; CHECK-MFSPR: blr67 68; CHECK-MFTB-LABEL: @get_timeu_e69; CHECK-MFTB: mftbu 370; CHECK-MFTB: blr71}72 73