brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · dce8579 Raw
153 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -verify-machineinstrs -csky-no-aliases < %s -mtriple=csky -mattr=+2e3 | FileCheck %s3; RUN: llc -verify-machineinstrs -csky-no-aliases < %s -mtriple=csky -relocation-model=pic -code-model=small -mattr=+2e3 | FileCheck %s --check-prefix=CHECK-PIC-SMALL4; RUN: llc -verify-machineinstrs -csky-no-aliases < %s -mtriple=csky -relocation-model=pic -code-model=large -mattr=+2e3 | FileCheck %s --check-prefix=CHECK-PIC-LARGE5 6define i32 @f(i32 %val) {7; CHECK-LABEL: f:8; CHECK:       # %bb.0: # %entry9; CHECK-NEXT:    movi16 a1, 410; CHECK-NEXT:    cmphs16 a1, a011; CHECK-NEXT:    bf32 .LBB0_712; CHECK-NEXT:  # %bb.1: # %entry13; CHECK-NEXT:    lrw32 a1, [.LCPI0_0]14; CHECK-NEXT:    ldr32.w a0, (a1, a0 << 2)15; CHECK-NEXT:    jmp32 a016; CHECK-NEXT:  .LBB0_2: # %onzero17; CHECK-NEXT:    movi16 a0, 018; CHECK-NEXT:    rts1619; CHECK-NEXT:  .LBB0_3: # %onthree20; CHECK-NEXT:    movi16 a0, 321; CHECK-NEXT:    rts1622; CHECK-NEXT:  .LBB0_4: # %ontwo23; CHECK-NEXT:    movi16 a0, 224; CHECK-NEXT:    rts1625; CHECK-NEXT:  .LBB0_5: # %onfour26; CHECK-NEXT:    movi16 a0, 427; CHECK-NEXT:    rts1628; CHECK-NEXT:  .LBB0_6: # %onone29; CHECK-NEXT:    movi16 a0, 130; CHECK-NEXT:    rts1631; CHECK-NEXT:  .LBB0_7: # %otherwise32; CHECK-NEXT:    movih32 a0, 6553533; CHECK-NEXT:    ori32 a0, a0, 6553534; CHECK-NEXT:    rts1635; CHECK-NEXT:    .p2align 136; CHECK-NEXT:  # %bb.8:37; CHECK-NEXT:    .p2align 2, 0x038; CHECK-NEXT:  .LCPI0_0:39; CHECK-NEXT:    .long .LJTI0_040;41; CHECK-PIC-SMALL-LABEL: f:42; CHECK-PIC-SMALL:       # %bb.0: # %entry43; CHECK-PIC-SMALL-NEXT:    subi16 sp, sp, 444; CHECK-PIC-SMALL-NEXT:    .cfi_def_cfa_offset 445; CHECK-PIC-SMALL-NEXT:    st32.w rgb, (sp, 0) # 4-byte Folded Spill46; CHECK-PIC-SMALL-NEXT:    .cfi_offset rgb, -447; CHECK-PIC-SMALL-NEXT:    .cfi_def_cfa_offset 448; CHECK-PIC-SMALL-NEXT:    lrw32 rgb, [.LCPI0_0]49; CHECK-PIC-SMALL-NEXT:    movi16 a1, 450; CHECK-PIC-SMALL-NEXT:    cmphs16 a1, a051; CHECK-PIC-SMALL-NEXT:    bf32 .LBB0_752; CHECK-PIC-SMALL-NEXT:  # %bb.1: # %entry53; CHECK-PIC-SMALL-NEXT:    lrw32 a1, [.LCPI0_1]54; CHECK-PIC-SMALL-NEXT:    addu32 a1, rgb, a155; CHECK-PIC-SMALL-NEXT:    ldr32.w a0, (a1, a0 << 2)56; CHECK-PIC-SMALL-NEXT:    addu16 a0, a157; CHECK-PIC-SMALL-NEXT:    jmp32 a058; CHECK-PIC-SMALL-NEXT:  .LBB0_2: # %onzero59; CHECK-PIC-SMALL-NEXT:    movi16 a0, 060; CHECK-PIC-SMALL-NEXT:    br32 .LBB0_861; CHECK-PIC-SMALL-NEXT:  .LBB0_3: # %onthree62; CHECK-PIC-SMALL-NEXT:    movi16 a0, 363; CHECK-PIC-SMALL-NEXT:    br32 .LBB0_864; CHECK-PIC-SMALL-NEXT:  .LBB0_4: # %ontwo65; CHECK-PIC-SMALL-NEXT:    movi16 a0, 266; CHECK-PIC-SMALL-NEXT:    br32 .LBB0_867; CHECK-PIC-SMALL-NEXT:  .LBB0_5: # %onfour68; CHECK-PIC-SMALL-NEXT:    movi16 a0, 469; CHECK-PIC-SMALL-NEXT:    br32 .LBB0_870; CHECK-PIC-SMALL-NEXT:  .LBB0_6: # %onone71; CHECK-PIC-SMALL-NEXT:    movi16 a0, 172; CHECK-PIC-SMALL-NEXT:    br32 .LBB0_873; CHECK-PIC-SMALL-NEXT:  .LBB0_7: # %otherwise74; CHECK-PIC-SMALL-NEXT:    movih32 a0, 6553575; CHECK-PIC-SMALL-NEXT:    ori32 a0, a0, 6553576; CHECK-PIC-SMALL-NEXT:  .LBB0_8: # %onone77; CHECK-PIC-SMALL-NEXT:    ld32.w rgb, (sp, 0) # 4-byte Folded Reload78; CHECK-PIC-SMALL-NEXT:    addi16 sp, sp, 479; CHECK-PIC-SMALL-NEXT:    rts1680; CHECK-PIC-SMALL-NEXT:    .p2align 181; CHECK-PIC-SMALL-NEXT:  # %bb.9:82; CHECK-PIC-SMALL-NEXT:    .p2align 2, 0x083; CHECK-PIC-SMALL-NEXT:  .LCPI0_0:84; CHECK-PIC-SMALL-NEXT:    .long _GLOBAL_OFFSET_TABLE_85; CHECK-PIC-SMALL-NEXT:  .LCPI0_1:86; CHECK-PIC-SMALL-NEXT:    .long .LJTI0_0@GOTOFF87;88; CHECK-PIC-LARGE-LABEL: f:89; CHECK-PIC-LARGE:       # %bb.0: # %entry90; CHECK-PIC-LARGE-NEXT:    subi16 sp, sp, 491; CHECK-PIC-LARGE-NEXT:    .cfi_def_cfa_offset 492; CHECK-PIC-LARGE-NEXT:    st32.w rgb, (sp, 0) # 4-byte Folded Spill93; CHECK-PIC-LARGE-NEXT:    .cfi_offset rgb, -494; CHECK-PIC-LARGE-NEXT:    .cfi_def_cfa_offset 495; CHECK-PIC-LARGE-NEXT:    lrw32 rgb, [.LCPI0_0]96; CHECK-PIC-LARGE-NEXT:    movi16 a1, 497; CHECK-PIC-LARGE-NEXT:    cmphs16 a1, a098; CHECK-PIC-LARGE-NEXT:    bf32 .LBB0_799; CHECK-PIC-LARGE-NEXT:  # %bb.1: # %entry100; CHECK-PIC-LARGE-NEXT:    lrw32 a1, [.LCPI0_1]101; CHECK-PIC-LARGE-NEXT:    addu32 a1, rgb, a1102; CHECK-PIC-LARGE-NEXT:    ldr32.w a0, (a1, a0 << 2)103; CHECK-PIC-LARGE-NEXT:    addu16 a0, a1104; CHECK-PIC-LARGE-NEXT:    jmp32 a0105; CHECK-PIC-LARGE-NEXT:  .LBB0_2: # %onzero106; CHECK-PIC-LARGE-NEXT:    movi16 a0, 0107; CHECK-PIC-LARGE-NEXT:    br32 .LBB0_8108; CHECK-PIC-LARGE-NEXT:  .LBB0_3: # %onthree109; CHECK-PIC-LARGE-NEXT:    movi16 a0, 3110; CHECK-PIC-LARGE-NEXT:    br32 .LBB0_8111; CHECK-PIC-LARGE-NEXT:  .LBB0_4: # %ontwo112; CHECK-PIC-LARGE-NEXT:    movi16 a0, 2113; CHECK-PIC-LARGE-NEXT:    br32 .LBB0_8114; CHECK-PIC-LARGE-NEXT:  .LBB0_5: # %onfour115; CHECK-PIC-LARGE-NEXT:    movi16 a0, 4116; CHECK-PIC-LARGE-NEXT:    br32 .LBB0_8117; CHECK-PIC-LARGE-NEXT:  .LBB0_6: # %onone118; CHECK-PIC-LARGE-NEXT:    movi16 a0, 1119; CHECK-PIC-LARGE-NEXT:    br32 .LBB0_8120; CHECK-PIC-LARGE-NEXT:  .LBB0_7: # %otherwise121; CHECK-PIC-LARGE-NEXT:    movih32 a0, 65535122; CHECK-PIC-LARGE-NEXT:    ori32 a0, a0, 65535123; CHECK-PIC-LARGE-NEXT:  .LBB0_8: # %onone124; CHECK-PIC-LARGE-NEXT:    ld32.w rgb, (sp, 0) # 4-byte Folded Reload125; CHECK-PIC-LARGE-NEXT:    addi16 sp, sp, 4126; CHECK-PIC-LARGE-NEXT:    rts16127; CHECK-PIC-LARGE-NEXT:    .p2align 1128; CHECK-PIC-LARGE-NEXT:  # %bb.9:129; CHECK-PIC-LARGE-NEXT:    .p2align 2, 0x0130; CHECK-PIC-LARGE-NEXT:  .LCPI0_0:131; CHECK-PIC-LARGE-NEXT:    .long _GLOBAL_OFFSET_TABLE_132; CHECK-PIC-LARGE-NEXT:  .LCPI0_1:133; CHECK-PIC-LARGE-NEXT:    .long .LJTI0_0@GOTOFF134entry:135  switch i32 %val, label %otherwise [ i32 0, label %onzero136                                      i32 1, label %onone137                                      i32 3, label %onfour138                                      i32 4, label %onthree139                                      i32 2, label %ontwo ]140onone:141  ret i32 1142ontwo:143  ret i32 2144onzero:145  ret i32 0146onfour:147  ret i32 4148onthree:149  ret i32 3150otherwise:151  ret i32 -1152}153