brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.6 KiB · adb615a Raw
237 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=arm-eabi %s -o - | FileCheck %s --check-prefix=ARM3; RUN: llc -mtriple=thumbv6t2-eabi %s -o - | FileCheck %s --check-prefix=THUMB24; RUN: llc -mtriple=thumb-eabi %s -o - | FileCheck %s --check-prefix=THUMB5 6define i32 @t9(i32 %v) nounwind readnone {7; ARM-LABEL: t9:8; ARM:       @ %bb.0: @ %entry9; ARM-NEXT:    add r0, r0, r0, lsl #310; ARM-NEXT:    mov pc, lr11;12; THUMB2-LABEL: t9:13; THUMB2:       @ %bb.0: @ %entry14; THUMB2-NEXT:    add.w r0, r0, r0, lsl #315; THUMB2-NEXT:    bx lr16;17; THUMB-LABEL: t9:18; THUMB:       @ %bb.0: @ %entry19; THUMB-NEXT:    movs r1, #920; THUMB-NEXT:    muls r0, r1, r021; THUMB-NEXT:    bx lr22entry:23	%0 = mul i32 %v, 924	ret i32 %025}26 27define i32 @t7(i32 %v) nounwind readnone {28; ARM-LABEL: t7:29; ARM:       @ %bb.0: @ %entry30; ARM-NEXT:    rsb r0, r0, r0, lsl #331; ARM-NEXT:    mov pc, lr32;33; THUMB2-LABEL: t7:34; THUMB2:       @ %bb.0: @ %entry35; THUMB2-NEXT:    rsb r0, r0, r0, lsl #336; THUMB2-NEXT:    bx lr37;38; THUMB-LABEL: t7:39; THUMB:       @ %bb.0: @ %entry40; THUMB-NEXT:    movs r1, #741; THUMB-NEXT:    muls r0, r1, r042; THUMB-NEXT:    bx lr43entry:44	%0 = mul i32 %v, 745	ret i32 %046}47 48define i32 @t5(i32 %v) nounwind readnone {49; ARM-LABEL: t5:50; ARM:       @ %bb.0: @ %entry51; ARM-NEXT:    add r0, r0, r0, lsl #252; ARM-NEXT:    mov pc, lr53;54; THUMB2-LABEL: t5:55; THUMB2:       @ %bb.0: @ %entry56; THUMB2-NEXT:    add.w r0, r0, r0, lsl #257; THUMB2-NEXT:    bx lr58;59; THUMB-LABEL: t5:60; THUMB:       @ %bb.0: @ %entry61; THUMB-NEXT:    movs r1, #562; THUMB-NEXT:    muls r0, r1, r063; THUMB-NEXT:    bx lr64entry:65        %0 = mul i32 %v, 566        ret i32 %067}68 69define i32 @t3(i32 %v) nounwind readnone {70; ARM-LABEL: t3:71; ARM:       @ %bb.0: @ %entry72; ARM-NEXT:    add r0, r0, r0, lsl #173; ARM-NEXT:    mov pc, lr74;75; THUMB2-LABEL: t3:76; THUMB2:       @ %bb.0: @ %entry77; THUMB2-NEXT:    add.w r0, r0, r0, lsl #178; THUMB2-NEXT:    bx lr79;80; THUMB-LABEL: t3:81; THUMB:       @ %bb.0: @ %entry82; THUMB-NEXT:    movs r1, #383; THUMB-NEXT:    muls r0, r1, r084; THUMB-NEXT:    bx lr85entry:86        %0 = mul i32 %v, 387        ret i32 %088}89 90define i32 @t12288(i32 %v) nounwind readnone {91; ARM-LABEL: t12288:92; ARM:       @ %bb.0: @ %entry93; ARM-NEXT:    add r0, r0, r0, lsl #194; ARM-NEXT:    lsl r0, r0, #1295; ARM-NEXT:    mov pc, lr96;97; THUMB2-LABEL: t12288:98; THUMB2:       @ %bb.0: @ %entry99; THUMB2-NEXT:    add.w r0, r0, r0, lsl #1100; THUMB2-NEXT:    lsls r0, r0, #12101; THUMB2-NEXT:    bx lr102;103; THUMB-LABEL: t12288:104; THUMB:       @ %bb.0: @ %entry105; THUMB-NEXT:    movs r1, #3106; THUMB-NEXT:    lsls r1, r1, #12107; THUMB-NEXT:    muls r0, r1, r0108; THUMB-NEXT:    bx lr109entry:110        %0 = mul i32 %v, 12288111        ret i32 %0112}113 114define i32 @tn9(i32 %v) nounwind readnone {115; ARM-LABEL: tn9:116; ARM:       @ %bb.0: @ %entry117; ARM-NEXT:    add r0, r0, r0, lsl #3118; ARM-NEXT:    rsb r0, r0, #0119; ARM-NEXT:    mov pc, lr120;121; THUMB2-LABEL: tn9:122; THUMB2:       @ %bb.0: @ %entry123; THUMB2-NEXT:    add.w r0, r0, r0, lsl #3124; THUMB2-NEXT:    rsbs r0, r0, #0125; THUMB2-NEXT:    bx lr126;127; THUMB-LABEL: tn9:128; THUMB:       @ %bb.0: @ %entry129; THUMB-NEXT:    movs r1, #8130; THUMB-NEXT:    mvns r1, r1131; THUMB-NEXT:    muls r0, r1, r0132; THUMB-NEXT:    bx lr133entry:134        %0 = mul i32 %v, -9135        ret i32 %0136}137 138define i32 @tn7(i32 %v) nounwind readnone {139; ARM-LABEL: tn7:140; ARM:       @ %bb.0: @ %entry141; ARM-NEXT:    sub r0, r0, r0, lsl #3142; ARM-NEXT:    mov pc, lr143;144; THUMB2-LABEL: tn7:145; THUMB2:       @ %bb.0: @ %entry146; THUMB2-NEXT:    sub.w r0, r0, r0, lsl #3147; THUMB2-NEXT:    bx lr148;149; THUMB-LABEL: tn7:150; THUMB:       @ %bb.0: @ %entry151; THUMB-NEXT:    movs r1, #6152; THUMB-NEXT:    mvns r1, r1153; THUMB-NEXT:    muls r0, r1, r0154; THUMB-NEXT:    bx lr155entry:156	%0 = mul i32 %v, -7157	ret i32 %0158}159 160define i32 @tn5(i32 %v) nounwind readnone {161; ARM-LABEL: tn5:162; ARM:       @ %bb.0: @ %entry163; ARM-NEXT:    add r0, r0, r0, lsl #2164; ARM-NEXT:    rsb r0, r0, #0165; ARM-NEXT:    mov pc, lr166;167; THUMB2-LABEL: tn5:168; THUMB2:       @ %bb.0: @ %entry169; THUMB2-NEXT:    add.w r0, r0, r0, lsl #2170; THUMB2-NEXT:    rsbs r0, r0, #0171; THUMB2-NEXT:    bx lr172;173; THUMB-LABEL: tn5:174; THUMB:       @ %bb.0: @ %entry175; THUMB-NEXT:    movs r1, #4176; THUMB-NEXT:    mvns r1, r1177; THUMB-NEXT:    muls r0, r1, r0178; THUMB-NEXT:    bx lr179entry:180        %0 = mul i32 %v, -5181        ret i32 %0182}183 184define i32 @tn3(i32 %v) nounwind readnone {185; ARM-LABEL: tn3:186; ARM:       @ %bb.0: @ %entry187; ARM-NEXT:    sub r0, r0, r0, lsl #2188; ARM-NEXT:    mov pc, lr189;190; THUMB2-LABEL: tn3:191; THUMB2:       @ %bb.0: @ %entry192; THUMB2-NEXT:    sub.w r0, r0, r0, lsl #2193; THUMB2-NEXT:    bx lr194;195; THUMB-LABEL: tn3:196; THUMB:       @ %bb.0: @ %entry197; THUMB-NEXT:    movs r1, #2198; THUMB-NEXT:    mvns r1, r1199; THUMB-NEXT:    muls r0, r1, r0200; THUMB-NEXT:    bx lr201entry:202; CHECK-LABEL: tn3:203; CHECK: sub r0, r0, r0, lsl #2204        %0 = mul i32 %v, -3205        ret i32 %0206}207 208define i32 @tn12288(i32 %v) nounwind readnone {209; ARM-LABEL: tn12288:210; ARM:       @ %bb.0: @ %entry211; ARM-NEXT:    sub r0, r0, r0, lsl #2212; ARM-NEXT:    lsl r0, r0, #12213; ARM-NEXT:    mov pc, lr214;215; THUMB2-LABEL: tn12288:216; THUMB2:       @ %bb.0: @ %entry217; THUMB2-NEXT:    sub.w r0, r0, r0, lsl #2218; THUMB2-NEXT:    lsls r0, r0, #12219; THUMB2-NEXT:    bx lr220;221; THUMB-LABEL: tn12288:222; THUMB:       @ %bb.0: @ %entry223; THUMB-NEXT:    ldr r1, .LCPI9_0224; THUMB-NEXT:    muls r0, r1, r0225; THUMB-NEXT:    bx lr226; THUMB-NEXT:    .p2align 2227; THUMB-NEXT:  @ %bb.1:228; THUMB-NEXT:  .LCPI9_0:229; THUMB-NEXT:    .long 4294955008 @ 0xffffd000230entry:231; CHECK-LABEL: tn12288:232; CHECK: sub r0, r0, r0, lsl #2233; CHECK: lsl{{.*}}#12234        %0 = mul i32 %v, -12288235        ret i32 %0236}237