74 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=aarch64_be -o - %s | FileCheck %s --check-prefix CHECK-BE3; RUN: llc -mtriple=aarch64 -o - %s | FileCheck %s --check-prefix CHECK-LE4 5define i8 @test1(i32 %a, ptr %pa) {6; CHECK-BE-LABEL: test1:7; CHECK-BE: // %bb.0:8; CHECK-BE-NEXT: mov w8, w09; CHECK-BE-NEXT: lsr w0, w0, #2410; CHECK-BE-NEXT: str w8, [x1]11; CHECK-BE-NEXT: ret12;13; CHECK-LE-LABEL: test1:14; CHECK-LE: // %bb.0:15; CHECK-LE-NEXT: str w0, [x1]16; CHECK-LE-NEXT: ret17 store i32 %a, ptr %pa18 %res = load i8, ptr %pa19 ret i8 %res20}21 22define i8 @test2(i32 %a, ptr %pa) {23; CHECK-BE-LABEL: test2:24; CHECK-BE: // %bb.0:25; CHECK-BE-NEXT: str w0, [x1]26; CHECK-BE-NEXT: ldrb w0, [x1, #1]27; CHECK-BE-NEXT: ret28;29; CHECK-LE-LABEL: test2:30; CHECK-LE: // %bb.0:31; CHECK-LE-NEXT: str w0, [x1]32; CHECK-LE-NEXT: ubfx w0, w0, #8, #833; CHECK-LE-NEXT: ret34 %p8 = getelementptr i8, ptr %pa, i32 135 store i32 %a, ptr %pa36 %res = load i8, ptr %p837 ret i8 %res38}39 40define i8 @test3(i32 %a, ptr %pa) {41; CHECK-BE-LABEL: test3:42; CHECK-BE: // %bb.0:43; CHECK-BE-NEXT: str w0, [x1]44; CHECK-BE-NEXT: ldrb w0, [x1, #2]45; CHECK-BE-NEXT: ret46;47; CHECK-LE-LABEL: test3:48; CHECK-LE: // %bb.0:49; CHECK-LE-NEXT: str w0, [x1]50; CHECK-LE-NEXT: ubfx w0, w0, #16, #851; CHECK-LE-NEXT: ret52 %p8 = getelementptr i8, ptr %pa, i32 253 store i32 %a, ptr %pa54 %res = load i8, ptr %p855 ret i8 %res56}57 58define i8 @test4(i32 %a, ptr %pa) {59; CHECK-BE-LABEL: test4:60; CHECK-BE: // %bb.0:61; CHECK-BE-NEXT: str w0, [x1]62; CHECK-BE-NEXT: ret63;64; CHECK-LE-LABEL: test4:65; CHECK-LE: // %bb.0:66; CHECK-LE-NEXT: str w0, [x1]67; CHECK-LE-NEXT: lsr w0, w0, #2468; CHECK-LE-NEXT: ret69 %p8 = getelementptr i8, ptr %pa, i32 370 store i32 %a, ptr %pa71 %res = load i8, ptr %p872 ret i8 %res73}74