130424191Sgonglingqin; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*9d4f7f44Swanglei; RUN: llc --mtriple=loongarch32 -mattr=+d < %s | FileCheck %s --check-prefix=LA32 3*9d4f7f44Swanglei; RUN: llc --mtriple=loongarch64 -mattr=+d < %s | FileCheck %s --check-prefix=LA64 430424191Sgonglingqin 530424191Sgonglingqindefine i8 @load_i8() nounwind { 630424191Sgonglingqin; LA32-LABEL: load_i8: 730424191Sgonglingqin; LA32: # %bb.0: 8653d823aSgonglingqin; LA32-NEXT: ld.b $a0, $zero, 40 930424191Sgonglingqin; LA32-NEXT: ret 1030424191Sgonglingqin; 1130424191Sgonglingqin; LA64-LABEL: load_i8: 1230424191Sgonglingqin; LA64: # %bb.0: 13653d823aSgonglingqin; LA64-NEXT: ld.b $a0, $zero, 40 1430424191Sgonglingqin; LA64-NEXT: ret 15653d823aSgonglingqin %a = load i8, ptr inttoptr (i64 40 to ptr), align 8 1630424191Sgonglingqin ret i8 %a 1730424191Sgonglingqin} 1830424191Sgonglingqin 1930424191Sgonglingqindefine signext i8 @load_i8_sext() nounwind { 2030424191Sgonglingqin; LA32-LABEL: load_i8_sext: 2130424191Sgonglingqin; LA32: # %bb.0: 22653d823aSgonglingqin; LA32-NEXT: ld.b $a0, $zero, 40 2330424191Sgonglingqin; LA32-NEXT: ret 2430424191Sgonglingqin; 2530424191Sgonglingqin; LA64-LABEL: load_i8_sext: 2630424191Sgonglingqin; LA64: # %bb.0: 27653d823aSgonglingqin; LA64-NEXT: ld.b $a0, $zero, 40 2830424191Sgonglingqin; LA64-NEXT: ret 29653d823aSgonglingqin %a = load i8, ptr inttoptr (i64 40 to ptr), align 8 3030424191Sgonglingqin ret i8 %a 3130424191Sgonglingqin} 3230424191Sgonglingqin 3330424191Sgonglingqindefine i16 @load_i16() nounwind { 3430424191Sgonglingqin; LA32-LABEL: load_i16: 3530424191Sgonglingqin; LA32: # %bb.0: 36653d823aSgonglingqin; LA32-NEXT: ld.h $a0, $zero, 40 3730424191Sgonglingqin; LA32-NEXT: ret 3830424191Sgonglingqin; 3930424191Sgonglingqin; LA64-LABEL: load_i16: 4030424191Sgonglingqin; LA64: # %bb.0: 41653d823aSgonglingqin; LA64-NEXT: ld.h $a0, $zero, 40 4230424191Sgonglingqin; LA64-NEXT: ret 43653d823aSgonglingqin %a = load i16, ptr inttoptr (i64 40 to ptr), align 8 4430424191Sgonglingqin ret i16 %a 4530424191Sgonglingqin} 4630424191Sgonglingqin 4730424191Sgonglingqindefine signext i16 @load_i16_sext() nounwind { 4830424191Sgonglingqin; LA32-LABEL: load_i16_sext: 4930424191Sgonglingqin; LA32: # %bb.0: 50653d823aSgonglingqin; LA32-NEXT: ld.h $a0, $zero, 40 5130424191Sgonglingqin; LA32-NEXT: ret 5230424191Sgonglingqin; 5330424191Sgonglingqin; LA64-LABEL: load_i16_sext: 5430424191Sgonglingqin; LA64: # %bb.0: 55653d823aSgonglingqin; LA64-NEXT: ld.h $a0, $zero, 40 5630424191Sgonglingqin; LA64-NEXT: ret 57653d823aSgonglingqin %a = load i16, ptr inttoptr (i64 40 to ptr), align 8 5830424191Sgonglingqin ret i16 %a 5930424191Sgonglingqin} 6030424191Sgonglingqin 6130424191Sgonglingqindefine i32 @load_i32() nounwind { 6230424191Sgonglingqin; LA32-LABEL: load_i32: 6330424191Sgonglingqin; LA32: # %bb.0: 64653d823aSgonglingqin; LA32-NEXT: ld.w $a0, $zero, 40 6530424191Sgonglingqin; LA32-NEXT: ret 6630424191Sgonglingqin; 6730424191Sgonglingqin; LA64-LABEL: load_i32: 6830424191Sgonglingqin; LA64: # %bb.0: 69653d823aSgonglingqin; LA64-NEXT: ld.w $a0, $zero, 40 7030424191Sgonglingqin; LA64-NEXT: ret 71653d823aSgonglingqin %a = load i32, ptr inttoptr (i64 40 to ptr), align 8 7230424191Sgonglingqin ret i32 %a 7330424191Sgonglingqin} 7430424191Sgonglingqin 7530424191Sgonglingqindefine signext i32 @load_i32_sext() nounwind { 7630424191Sgonglingqin; LA32-LABEL: load_i32_sext: 7730424191Sgonglingqin; LA32: # %bb.0: 78653d823aSgonglingqin; LA32-NEXT: ld.w $a0, $zero, 40 7930424191Sgonglingqin; LA32-NEXT: ret 8030424191Sgonglingqin; 8130424191Sgonglingqin; LA64-LABEL: load_i32_sext: 8230424191Sgonglingqin; LA64: # %bb.0: 83653d823aSgonglingqin; LA64-NEXT: ld.w $a0, $zero, 40 8430424191Sgonglingqin; LA64-NEXT: ret 85653d823aSgonglingqin %a = load i32, ptr inttoptr (i64 40 to ptr), align 8 8630424191Sgonglingqin ret i32 %a 8730424191Sgonglingqin} 8830424191Sgonglingqin 8930424191Sgonglingqindefine i64 @load_i64() nounwind { 9030424191Sgonglingqin; LA32-LABEL: load_i64: 9130424191Sgonglingqin; LA32: # %bb.0: 92653d823aSgonglingqin; LA32-NEXT: ld.w $a0, $zero, 40 93653d823aSgonglingqin; LA32-NEXT: ld.w $a1, $zero, 44 9430424191Sgonglingqin; LA32-NEXT: ret 9530424191Sgonglingqin; 9630424191Sgonglingqin; LA64-LABEL: load_i64: 9730424191Sgonglingqin; LA64: # %bb.0: 98653d823aSgonglingqin; LA64-NEXT: ld.d $a0, $zero, 40 9930424191Sgonglingqin; LA64-NEXT: ret 100653d823aSgonglingqin %a = load i64, ptr inttoptr (i64 40 to ptr), align 8 10130424191Sgonglingqin ret i64 %a 10230424191Sgonglingqin} 10330424191Sgonglingqin 10430424191Sgonglingqindefine void @store_i8(i8 %v) nounwind { 10530424191Sgonglingqin; LA32-LABEL: store_i8: 10630424191Sgonglingqin; LA32: # %bb.0: 107653d823aSgonglingqin; LA32-NEXT: st.b $a0, $zero, 40 10830424191Sgonglingqin; LA32-NEXT: ret 10930424191Sgonglingqin; 11030424191Sgonglingqin; LA64-LABEL: store_i8: 11130424191Sgonglingqin; LA64: # %bb.0: 112653d823aSgonglingqin; LA64-NEXT: st.b $a0, $zero, 40 11330424191Sgonglingqin; LA64-NEXT: ret 114653d823aSgonglingqin store i8 %v, ptr inttoptr (i64 40 to ptr), align 8 11530424191Sgonglingqin ret void 11630424191Sgonglingqin} 11730424191Sgonglingqin 11830424191Sgonglingqindefine void @store_i16(i16 %v) nounwind { 11930424191Sgonglingqin; LA32-LABEL: store_i16: 12030424191Sgonglingqin; LA32: # %bb.0: 121653d823aSgonglingqin; LA32-NEXT: st.h $a0, $zero, 40 12230424191Sgonglingqin; LA32-NEXT: ret 12330424191Sgonglingqin; 12430424191Sgonglingqin; LA64-LABEL: store_i16: 12530424191Sgonglingqin; LA64: # %bb.0: 126653d823aSgonglingqin; LA64-NEXT: st.h $a0, $zero, 40 12730424191Sgonglingqin; LA64-NEXT: ret 128653d823aSgonglingqin store i16 %v, ptr inttoptr (i64 40 to ptr), align 8 12930424191Sgonglingqin ret void 13030424191Sgonglingqin} 13130424191Sgonglingqin 13230424191Sgonglingqindefine void @store_i32(i32 %v) nounwind { 13330424191Sgonglingqin; LA32-LABEL: store_i32: 13430424191Sgonglingqin; LA32: # %bb.0: 135653d823aSgonglingqin; LA32-NEXT: st.w $a0, $zero, 40 13630424191Sgonglingqin; LA32-NEXT: ret 13730424191Sgonglingqin; 13830424191Sgonglingqin; LA64-LABEL: store_i32: 13930424191Sgonglingqin; LA64: # %bb.0: 140653d823aSgonglingqin; LA64-NEXT: st.w $a0, $zero, 40 14130424191Sgonglingqin; LA64-NEXT: ret 142653d823aSgonglingqin store i32 %v, ptr inttoptr (i64 40 to ptr), align 8 14330424191Sgonglingqin ret void 14430424191Sgonglingqin} 14530424191Sgonglingqin 14630424191Sgonglingqindefine void @store_i64(i64 %v) nounwind { 14730424191Sgonglingqin; LA32-LABEL: store_i64: 14830424191Sgonglingqin; LA32: # %bb.0: 149653d823aSgonglingqin; LA32-NEXT: st.w $a1, $zero, 44 150653d823aSgonglingqin; LA32-NEXT: st.w $a0, $zero, 40 15130424191Sgonglingqin; LA32-NEXT: ret 15230424191Sgonglingqin; 15330424191Sgonglingqin; LA64-LABEL: store_i64: 15430424191Sgonglingqin; LA64: # %bb.0: 155653d823aSgonglingqin; LA64-NEXT: st.d $a0, $zero, 40 15630424191Sgonglingqin; LA64-NEXT: ret 157653d823aSgonglingqin store i64 %v, ptr inttoptr (i64 40 to ptr), align 8 15830424191Sgonglingqin ret void 15930424191Sgonglingqin} 160