brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.0 KiB · 9487c48 Raw
82 lines · plain
1; RUN: llc -mtriple=powerpc64-unknown-aix-xcoff -mcpu=pwr4 --mattr=-altivec \2; RUN: --verify-machineinstrs < %s | FileCheck --check-prefix=64BIT %s3 4; RUN: llc -mtriple=powerpc-unknown-aix-xcoff -mcpu=pwr4 --mattr=-altivec \5; RUN: --verify-machineinstrs < %s | FileCheck --check-prefix=32BIT %s6 7define dso_local signext i32 @killOne(i32 signext %i) {8entry:9  tail call void asm sideeffect "# Clobber CR", "~{cr4}"()10  %call = call signext i32 @do_something(i32 %i)11  ret i32 %call12}13 14define dso_local signext i32 @killAll(i32 signext %i) {15entry:16  tail call void asm sideeffect "# Clobber CR", "~{cr0},~{cr1},~{cr2},~{cr3},~{cr4},~{cr5},~{cr6},~{cr7}" ()17  %call = call signext i32 @do_something(i32 %i)18  ret i32 %call19}20 21declare signext i32 @do_something(i32 signext)22 23; 64BIT-LABEL: .killOne:24 25; 64BIT:       mfcr 1226; 64BIT-NEXT:  stw 12, 8(1)27; 64BIT-NEXT:  mflr 028; 64BIT-NEXT:  stdu 1, -112(1)29; 64BIT:       std 0, 128(1)30 31; 64BIT:       # Clobber CR32; 64BIT:       bl .do_something33 34; 64BIT:       addi 1, 1, 11235; 64BIT-NEXT:  ld 0, 16(1)36; 64BIT-NEXT:  lwz 12, 8(1)37; 64BIT-NEXT:  mtlr 038; 64BIT-NEXT:  mtocrf 8, 1239; 64BIT:       blr40 41; 32BIT-LABEL: .killOne:42 43; 32BIT:       mfcr 1244; 32BIT-NEXT:  stw 12, 4(1)45; 32BIT-NEXT:  mflr 046; 32BIT-NEXT:  stwu 1, -64(1)47; 32BIT:       stw 0, 72(1)48 49; 32BIT:       # Clobber CR50; 32BIT:       bl .do_something51 52; 32BIT:       addi 1, 1, 6453; 32BIT-NEXT:  lwz 0, 8(1)54; 32BIT-NEXT:  lwz 12, 4(1)55; 32BIT-NEXT:  mtlr 056; 32BIT-NEXT:  mtocrf 8, 1257; 32BIT:       blr58 59 60; 64BIT-LABEL: .killAll:61 62; 64BIT:        addi 1, 1, 11263; 64BIT-NEXT:   ld 0, 16(1)64; 64BIT-NEXT:   lwz 12, 8(1)65; 64BIT-NEXT:   mtlr 066; 64BIT-NEXT:   mtocrf 32, 1267; 64BIT-NEXT:   mtocrf 16, 1268; 64BIT-NEXT:   mtocrf 8, 1269; 64BIT-NEXT:   blr70 71 72; 32BIT-LABEL: .killAll:73 74; 32BIT:        addi 1, 1, 6475; 32BIT-NEXT:   lwz 0, 8(1)76; 32BIT-NEXT:   lwz 12, 4(1)77; 32BIT-NEXT:   mtlr 078; 32BIT-NEXT:   mtocrf 32, 1279; 32BIT-NEXT:   mtocrf 16, 1280; 32BIT-NEXT:   mtocrf 8, 1281; 32BIT-NEXT:   blr82