brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · b83d5dc Raw
160 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc --mtriple=loongarch32 -mattr=+d < %s | FileCheck %s --check-prefix=LA323; RUN: llc --mtriple=loongarch64 -mattr=+d < %s | FileCheck %s --check-prefix=LA644 5define i8 @load_i8() nounwind {6; LA32-LABEL: load_i8:7; LA32:       # %bb.0:8; LA32-NEXT:    ld.b $a0, $zero, 409; LA32-NEXT:    ret10;11; LA64-LABEL: load_i8:12; LA64:       # %bb.0:13; LA64-NEXT:    ld.b $a0, $zero, 4014; LA64-NEXT:    ret15  %a = load i8, ptr inttoptr (i64 40 to ptr), align 816  ret i8 %a17}18 19define signext i8 @load_i8_sext() nounwind {20; LA32-LABEL: load_i8_sext:21; LA32:       # %bb.0:22; LA32-NEXT:    ld.b $a0, $zero, 4023; LA32-NEXT:    ret24;25; LA64-LABEL: load_i8_sext:26; LA64:       # %bb.0:27; LA64-NEXT:    ld.b $a0, $zero, 4028; LA64-NEXT:    ret29  %a = load i8, ptr inttoptr (i64 40 to ptr), align 830  ret i8 %a31}32 33define i16 @load_i16() nounwind {34; LA32-LABEL: load_i16:35; LA32:       # %bb.0:36; LA32-NEXT:    ld.h $a0, $zero, 4037; LA32-NEXT:    ret38;39; LA64-LABEL: load_i16:40; LA64:       # %bb.0:41; LA64-NEXT:    ld.h $a0, $zero, 4042; LA64-NEXT:    ret43  %a = load i16, ptr inttoptr (i64 40 to ptr), align 844  ret i16 %a45}46 47define signext i16 @load_i16_sext() nounwind {48; LA32-LABEL: load_i16_sext:49; LA32:       # %bb.0:50; LA32-NEXT:    ld.h $a0, $zero, 4051; LA32-NEXT:    ret52;53; LA64-LABEL: load_i16_sext:54; LA64:       # %bb.0:55; LA64-NEXT:    ld.h $a0, $zero, 4056; LA64-NEXT:    ret57  %a = load i16, ptr inttoptr (i64 40 to ptr), align 858  ret i16 %a59}60 61define i32 @load_i32() nounwind {62; LA32-LABEL: load_i32:63; LA32:       # %bb.0:64; LA32-NEXT:    ld.w $a0, $zero, 4065; LA32-NEXT:    ret66;67; LA64-LABEL: load_i32:68; LA64:       # %bb.0:69; LA64-NEXT:    ld.w $a0, $zero, 4070; LA64-NEXT:    ret71  %a = load i32, ptr inttoptr (i64 40 to ptr), align 872  ret i32 %a73}74 75define signext i32 @load_i32_sext() nounwind {76; LA32-LABEL: load_i32_sext:77; LA32:       # %bb.0:78; LA32-NEXT:    ld.w $a0, $zero, 4079; LA32-NEXT:    ret80;81; LA64-LABEL: load_i32_sext:82; LA64:       # %bb.0:83; LA64-NEXT:    ld.w $a0, $zero, 4084; LA64-NEXT:    ret85  %a = load i32, ptr inttoptr (i64 40 to ptr), align 886  ret i32 %a87}88 89define i64 @load_i64() nounwind {90; LA32-LABEL: load_i64:91; LA32:       # %bb.0:92; LA32-NEXT:    ld.w $a0, $zero, 4093; LA32-NEXT:    ld.w $a1, $zero, 4494; LA32-NEXT:    ret95;96; LA64-LABEL: load_i64:97; LA64:       # %bb.0:98; LA64-NEXT:    ld.d $a0, $zero, 4099; LA64-NEXT:    ret100  %a = load i64, ptr inttoptr (i64 40 to ptr), align 8101  ret i64 %a102}103 104define void @store_i8(i8 %v) nounwind {105; LA32-LABEL: store_i8:106; LA32:       # %bb.0:107; LA32-NEXT:    st.b $a0, $zero, 40108; LA32-NEXT:    ret109;110; LA64-LABEL: store_i8:111; LA64:       # %bb.0:112; LA64-NEXT:    st.b $a0, $zero, 40113; LA64-NEXT:    ret114  store i8 %v, ptr inttoptr (i64 40 to ptr), align 8115  ret void116}117 118define void @store_i16(i16 %v) nounwind {119; LA32-LABEL: store_i16:120; LA32:       # %bb.0:121; LA32-NEXT:    st.h $a0, $zero, 40122; LA32-NEXT:    ret123;124; LA64-LABEL: store_i16:125; LA64:       # %bb.0:126; LA64-NEXT:    st.h $a0, $zero, 40127; LA64-NEXT:    ret128  store i16 %v, ptr inttoptr (i64 40 to ptr), align 8129  ret void130}131 132define void @store_i32(i32 %v) nounwind {133; LA32-LABEL: store_i32:134; LA32:       # %bb.0:135; LA32-NEXT:    st.w $a0, $zero, 40136; LA32-NEXT:    ret137;138; LA64-LABEL: store_i32:139; LA64:       # %bb.0:140; LA64-NEXT:    st.w $a0, $zero, 40141; LA64-NEXT:    ret142  store i32 %v, ptr inttoptr (i64 40 to ptr), align 8143  ret void144}145 146define void @store_i64(i64 %v) nounwind {147; LA32-LABEL: store_i64:148; LA32:       # %bb.0:149; LA32-NEXT:    st.w $a1, $zero, 44150; LA32-NEXT:    st.w $a0, $zero, 40151; LA32-NEXT:    ret152;153; LA64-LABEL: store_i64:154; LA64:       # %bb.0:155; LA64-NEXT:    st.d $a0, $zero, 40156; LA64-NEXT:    ret157  store i64 %v, ptr inttoptr (i64 40 to ptr), align 8158  ret void159}160