Home | History | Annotate | Download | only in llvm2ice_tests
      1 ; Simple test of the load instruction.
      2 
      3 ; REQUIRES: allow_dump
      4 
      5 ; RUN: %p2i -i %s --args --verbose inst -threads=0 | FileCheck %s
      6 
      7 ; RUN: %if --need=target_MIPS32 --need=allow_dump \
      8 ; RUN:   --command %p2i --filetype=asm --assemble \
      9 ; RUN:   --disassemble --target mips32 -i %s --args -Om1 \
     10 ; RUN:   -allow-externally-defined-symbols \
     11 ; RUN:   | %if --need=target_MIPS32 --need=allow_dump \
     12 ; RUN:   --command FileCheck --check-prefix MIPS32 %s
     13 
     14 define internal void @load_i64(i32 %addr_arg) {
     15 entry:
     16   %__1 = inttoptr i32 %addr_arg to i64*
     17   %iv = load i64, i64* %__1, align 1
     18   ret void
     19 
     20 ; CHECK:       Initial CFG
     21 ; CHECK:     entry:
     22 ; CHECK-NEXT:  %iv = load i64, i64* %addr_arg, align 1
     23 ; CHECK-NEXT:  ret void
     24 }
     25 
     26 ; MIPS32-LABEL: load_i64
     27 ; MIPS32: lw [[BASE:.*]],
     28 ; MIPS32-NEXT: lw {{.*}},0([[BASE]])
     29 ; MIPS32-NEXT: lw {{.*}},4([[BASE]])
     30 
     31 define internal void @load_i32(i32 %addr_arg) {
     32 entry:
     33   %__1 = inttoptr i32 %addr_arg to i32*
     34   %iv = load i32, i32* %__1, align 1
     35   ret void
     36 
     37 ; CHECK:       Initial CFG
     38 ; CHECK:     entry:
     39 ; CHECK-NEXT:  %iv = load i32, i32* %addr_arg, align 1
     40 ; CHECK-NEXT:  ret void
     41 }
     42 
     43 ; MIPS32-LABEL: load_i32
     44 ; MIPS32: lw {{.*}},0({{.*}})
     45 
     46 define internal void @load_i16(i32 %addr_arg) {
     47 entry:
     48   %__1 = inttoptr i32 %addr_arg to i16*
     49   %iv = load i16, i16* %__1, align 1
     50   ret void
     51 
     52 ; CHECK:       Initial CFG
     53 ; CHECK:     entry:
     54 ; CHECK-NEXT:  %iv = load i16, i16* %addr_arg, align 1
     55 ; CHECK-NEXT:  ret void
     56 }
     57 
     58 ; MIPS32-LABEL: load_i16
     59 ; MIPS32: lh {{.*}},0({{.*}})
     60 
     61 define internal void @load_i8(i32 %addr_arg) {
     62 entry:
     63   %__1 = inttoptr i32 %addr_arg to i8*
     64   %iv = load i8, i8* %__1, align 1
     65   ret void
     66 
     67 ; CHECK:       Initial CFG
     68 ; CHECK:     entry:
     69 ; CHECK-NEXT:  %iv = load i8, i8* %addr_arg, align 1
     70 ; CHECK-NEXT:  ret void
     71 }
     72 
     73 ; MIPS32-LABEL: load_i8
     74 ; MIPS32: lb {{.*}},0({{.*}})
     75