brintos

brintos / llvm-project-archived public Read only

0
0
Text · 11.7 KiB · ed740d5 Raw
342 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py2# RUN: llc -o - %s -mtriple=riscv64 -mattr=+c -simplify-mir \3# RUN:   -run-pass=riscv-make-compressible | FileCheck %s4--- |5 6  define void @store_common_value(ptr %a, ptr %b, ptr %c) #0 {7  entry:8    store i64 0, ptr %a, align 89    store i64 0, ptr %b, align 810    store i64 0, ptr %c, align 811    ret void12  }13 14  define void @store_common_ptr(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, ptr %p) #0 {15  entry:16    store volatile i64 1, ptr %p, align 817    store volatile i64 3, ptr %p, align 818    store volatile i64 5, ptr %p, align 819    ret void20  }21 22  define void @store_common_ptr_self(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, ptr %p) #0 {23  entry:24    %q = bitcast ptr %p to ptr25    store volatile i64 1, ptr %p, align 826    store volatile i64 3, ptr %p, align 827    store volatile ptr %p, ptr %q, align 828    ret void29  }30 31  define void @load_common_ptr(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, ptr %p) #0 {32  entry:33    %g = load volatile i64, ptr %p, align 834    %h = load volatile i64, ptr %p, align 835    %i = load volatile i64, ptr %p, align 836    ret void37  }38 39  define void @store_large_offset(ptr %p) #0 {40  entry:41    %0 = getelementptr inbounds i64, ptr %p, i64 10042    store volatile i64 1, ptr %0, align 843    %1 = getelementptr inbounds i64, ptr %p, i64 10144    store volatile i64 3, ptr %1, align 845    %2 = getelementptr inbounds i64, ptr %p, i64 10246    store volatile i64 5, ptr %2, align 847    %3 = getelementptr inbounds i64, ptr %p, i64 10348    store volatile i64 7, ptr %3, align 849    ret void50  }51 52  define void @load_large_offset(ptr %p) #0 {53  entry:54    %0 = getelementptr inbounds i64, ptr %p, i64 10055    %a = load volatile i64, ptr %0, align 856    %1 = getelementptr inbounds i64, ptr %p, i64 10157    %b = load volatile i64, ptr %1, align 858    %2 = getelementptr inbounds i64, ptr %p, i64 10259    %c = load volatile i64, ptr %2, align 860    %3 = getelementptr inbounds i64, ptr %p, i64 10361    %d = load volatile i64, ptr %3, align 862    ret void63  }64 65  define void @store_common_value_no_opt(ptr %a) #0 {66  entry:67    store i64 0, ptr %a, align 868    ret void69  }70 71  define void @store_common_ptr_no_opt(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, ptr %p) #0 {72  entry:73    store volatile i64 1, ptr %p, align 874    ret void75  }76 77  define void @load_common_ptr_no_opt(i64 %a, i64 %b, i64 %c, i64 %d, i64 %e, i64 %f, ptr %p) #0 {78  entry:79    %g = load volatile i64, ptr %p, align 880    ret void81  }82 83  define void @store_large_offset_no_opt(ptr %p) #0 {84  entry:85    %0 = getelementptr inbounds i64, ptr %p, i64 10086    store volatile i64 1, ptr %0, align 887    %1 = getelementptr inbounds i64, ptr %p, i64 10188    store volatile i64 3, ptr %1, align 889    ret void90  }91 92  define void @load_large_offset_no_opt(ptr %p) #0 {93  entry:94    %0 = getelementptr inbounds i64, ptr %p, i64 10095    %a = load volatile i64, ptr %0, align 896    %1 = getelementptr inbounds i64, ptr %p, i64 10197    %b = load volatile i64, ptr %1, align 898    ret void99  }100 101  attributes #0 = { minsize "target-features"="+c" }102 103...104---105name:            store_common_value106tracksRegLiveness: true107body:             |108  bb.0.entry:109    liveins: $x10, $x11, $x12110 111    ; CHECK-LABEL: name: store_common_value112    ; CHECK: liveins: $x10, $x11, $x12113    ; CHECK-NEXT: {{  $}}114    ; CHECK-NEXT: $x13 = ADDI $x0, 0115    ; CHECK-NEXT: SD $x13, killed renamable $x10, 0 :: (store (s64) into %ir.a)116    ; CHECK-NEXT: SD $x13, killed renamable $x11, 0 :: (store (s64) into %ir.b)117    ; CHECK-NEXT: SD $x13, killed renamable $x12, 0 :: (store (s64) into %ir.c)118    ; CHECK-NEXT: PseudoRET119    SD $x0, killed renamable $x10, 0 :: (store (s64) into %ir.a)120    SD $x0, killed renamable $x11, 0 :: (store (s64) into %ir.b)121    SD $x0, killed renamable $x12, 0 :: (store (s64) into %ir.c)122    PseudoRET123 124...125---126name:            store_common_ptr127tracksRegLiveness: true128body:             |129  bb.0.entry:130    liveins: $x16131 132    ; CHECK-LABEL: name: store_common_ptr133    ; CHECK: liveins: $x16134    ; CHECK-NEXT: {{  $}}135    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 1136    ; CHECK-NEXT: $x11 = ADDI $x16, 0137    ; CHECK-NEXT: SD killed renamable $x10, $x11, 0 :: (volatile store (s64) into %ir.p)138    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 3139    ; CHECK-NEXT: SD killed renamable $x10, $x11, 0 :: (volatile store (s64) into %ir.p)140    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 5141    ; CHECK-NEXT: SD killed renamable $x10, killed $x11, 0 :: (volatile store (s64) into %ir.p)142    ; CHECK-NEXT: PseudoRET143    renamable $x10 = ADDI $x0, 1144    SD killed renamable $x10, renamable $x16, 0 :: (volatile store (s64) into %ir.p)145    renamable $x10 = ADDI $x0, 3146    SD killed renamable $x10, renamable $x16, 0 :: (volatile store (s64) into %ir.p)147    renamable $x10 = ADDI $x0, 5148    SD killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)149    PseudoRET150 151...152---153name:            store_common_ptr_self154tracksRegLiveness: true155body:             |156  bb.0.entry:157    liveins: $x16158 159    ; CHECK-LABEL: name: store_common_ptr_self160    ; CHECK: liveins: $x16161    ; CHECK-NEXT: {{  $}}162    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 1163    ; CHECK-NEXT: $x11 = ADDI $x16, 0164    ; CHECK-NEXT: SD killed renamable $x10, $x11, 0 :: (volatile store (s64) into %ir.p)165    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 3166    ; CHECK-NEXT: SD killed renamable $x10, $x11, 0 :: (volatile store (s64) into %ir.p)167    ; CHECK-NEXT: SD killed $x11, $x11, 0 :: (volatile store (s64) into %ir.q)168    ; CHECK-NEXT: PseudoRET169    renamable $x10 = ADDI $x0, 1170    SD killed renamable $x10, renamable $x16, 0 :: (volatile store (s64) into %ir.p)171    renamable $x10 = ADDI $x0, 3172    SD killed renamable $x10, renamable $x16, 0 :: (volatile store (s64) into %ir.p)173    SD killed renamable $x16, renamable $x16, 0 :: (volatile store (s64) into %ir.q)174    PseudoRET175 176...177---178name:            load_common_ptr179tracksRegLiveness: true180body:             |181  bb.0.entry:182    liveins: $x16183 184    ; CHECK-LABEL: name: load_common_ptr185    ; CHECK: liveins: $x16186    ; CHECK-NEXT: {{  $}}187    ; CHECK-NEXT: $x11 = ADDI $x16, 0188    ; CHECK-NEXT: dead renamable $x10 = LD $x11, 0 :: (volatile load (s64) from %ir.p)189    ; CHECK-NEXT: dead renamable $x10 = LD $x11, 0 :: (volatile load (s64) from %ir.p)190    ; CHECK-NEXT: dead renamable $x10 = LD killed $x11, 0 :: (volatile load (s64) from %ir.p)191    ; CHECK-NEXT: PseudoRET192    dead renamable $x10 = LD renamable $x16, 0 :: (volatile load (s64) from %ir.p)193    dead renamable $x10 = LD renamable $x16, 0 :: (volatile load (s64) from %ir.p)194    dead renamable $x10 = LD killed renamable $x16, 0 :: (volatile load (s64) from %ir.p)195    PseudoRET196 197...198---199name:            store_large_offset200tracksRegLiveness: true201body:             |202  bb.0.entry:203    liveins: $x10204 205    ; CHECK-LABEL: name: store_large_offset206    ; CHECK: liveins: $x10207    ; CHECK-NEXT: {{  $}}208    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1209    ; CHECK-NEXT: $x12 = ADDI $x10, 768210    ; CHECK-NEXT: SD killed renamable $x11, $x12, 32 :: (volatile store (s64) into %ir.0)211    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3212    ; CHECK-NEXT: SD killed renamable $x11, $x12, 40 :: (volatile store (s64) into %ir.1)213    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 5214    ; CHECK-NEXT: SD killed renamable $x11, $x12, 48 :: (volatile store (s64) into %ir.2)215    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 7216    ; CHECK-NEXT: SD killed renamable $x11, killed $x12, 56 :: (volatile store (s64) into %ir.3)217    ; CHECK-NEXT: PseudoRET218    renamable $x11 = ADDI $x0, 1219    SD killed renamable $x11, renamable $x10, 800 :: (volatile store (s64) into %ir.0)220    renamable $x11 = ADDI $x0, 3221    SD killed renamable $x11, renamable $x10, 808 :: (volatile store (s64) into %ir.1)222    renamable $x11 = ADDI $x0, 5223    SD killed renamable $x11, renamable $x10, 816 :: (volatile store (s64) into %ir.2)224    renamable $x11 = ADDI $x0, 7225    SD killed renamable $x11, killed renamable $x10, 824 :: (volatile store (s64) into %ir.3)226    PseudoRET227 228...229---230name:            load_large_offset231tracksRegLiveness: true232body:             |233  bb.0.entry:234    liveins: $x10235 236    ; CHECK-LABEL: name: load_large_offset237    ; CHECK: liveins: $x10238    ; CHECK-NEXT: {{  $}}239    ; CHECK-NEXT: $x12 = ADDI $x10, 768240    ; CHECK-NEXT: dead renamable $x11 = LD $x12, 32 :: (volatile load (s64) from %ir.0)241    ; CHECK-NEXT: dead renamable $x11 = LD $x12, 40 :: (volatile load (s64) from %ir.1)242    ; CHECK-NEXT: dead renamable $x11 = LD $x12, 48 :: (volatile load (s64) from %ir.2)243    ; CHECK-NEXT: dead renamable $x10 = LD killed $x12, 56 :: (volatile load (s64) from %ir.3)244    ; CHECK-NEXT: PseudoRET245    dead renamable $x11 = LD renamable $x10, 800 :: (volatile load (s64) from %ir.0)246    dead renamable $x11 = LD renamable $x10, 808 :: (volatile load (s64) from %ir.1)247    dead renamable $x11 = LD renamable $x10, 816 :: (volatile load (s64) from %ir.2)248    dead renamable $x10 = LD killed renamable $x10, 824 :: (volatile load (s64) from %ir.3)249    PseudoRET250 251...252---253name:            store_common_value_no_opt254tracksRegLiveness: true255body:             |256  bb.0.entry:257    liveins: $x10258 259    ; CHECK-LABEL: name: store_common_value_no_opt260    ; CHECK: liveins: $x10261    ; CHECK-NEXT: {{  $}}262    ; CHECK-NEXT: SD $x0, killed renamable $x10, 0 :: (store (s64) into %ir.a)263    ; CHECK-NEXT: PseudoRET264    SD $x0, killed renamable $x10, 0 :: (store (s64) into %ir.a)265    PseudoRET266 267...268---269name:            store_common_ptr_no_opt270tracksRegLiveness: true271body:             |272  bb.0.entry:273    liveins: $x16274 275    ; CHECK-LABEL: name: store_common_ptr_no_opt276    ; CHECK: liveins: $x16277    ; CHECK-NEXT: {{  $}}278    ; CHECK-NEXT: renamable $x10 = ADDI $x0, 1279    ; CHECK-NEXT: SD killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)280    ; CHECK-NEXT: PseudoRET281    renamable $x10 = ADDI $x0, 1282    SD killed renamable $x10, killed renamable $x16, 0 :: (volatile store (s64) into %ir.p)283    PseudoRET284 285...286---287name:            load_common_ptr_no_opt288tracksRegLiveness: true289body:             |290  bb.0.entry:291    liveins: $x16292 293    ; CHECK-LABEL: name: load_common_ptr_no_opt294    ; CHECK: liveins: $x16295    ; CHECK-NEXT: {{  $}}296    ; CHECK-NEXT: dead renamable $x10 = LD killed renamable $x16, 0 :: (volatile load (s64) from %ir.p)297    ; CHECK-NEXT: PseudoRET298    dead renamable $x10 = LD killed renamable $x16, 0 :: (volatile load (s64) from %ir.p)299    PseudoRET300 301...302---303name:            store_large_offset_no_opt304tracksRegLiveness: true305body:             |306  bb.0.entry:307    liveins: $x10308 309    ; CHECK-LABEL: name: store_large_offset_no_opt310    ; CHECK: liveins: $x10311    ; CHECK-NEXT: {{  $}}312    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 1313    ; CHECK-NEXT: SD killed renamable $x11, renamable $x10, 800 :: (volatile store (s64) into %ir.0)314    ; CHECK-NEXT: renamable $x11 = ADDI $x0, 3315    ; CHECK-NEXT: SD killed renamable $x11, killed renamable $x10, 808 :: (volatile store (s64) into %ir.1)316    ; CHECK-NEXT: PseudoRET317    renamable $x11 = ADDI $x0, 1318    SD killed renamable $x11, renamable $x10, 800 :: (volatile store (s64) into %ir.0)319    renamable $x11 = ADDI $x0, 3320    SD killed renamable $x11, killed renamable $x10, 808 :: (volatile store (s64) into %ir.1)321    PseudoRET322 323...324---325name:            load_large_offset_no_opt326tracksRegLiveness: true327body:             |328  bb.0.entry:329    liveins: $x10330 331    ; CHECK-LABEL: name: load_large_offset_no_opt332    ; CHECK: liveins: $x10333    ; CHECK-NEXT: {{  $}}334    ; CHECK-NEXT: dead renamable $x11 = LD renamable $x10, 800 :: (volatile load (s64) from %ir.0)335    ; CHECK-NEXT: dead renamable $x10 = LD killed renamable $x10, 808 :: (volatile load (s64) from %ir.1)336    ; CHECK-NEXT: PseudoRET337    dead renamable $x11 = LD renamable $x10, 800 :: (volatile load (s64) from %ir.0)338    dead renamable $x10 = LD killed renamable $x10, 808 :: (volatile load (s64) from %ir.1)339    PseudoRET340 341...342