27 lines · plain
1; RUN: llc < %s -mtriple=arm64-apple-darwin | FileCheck %s2; RUN: llc < %s -mtriple=arm64-apple-darwin -mattr=+strict-align | FileCheck %s --check-prefix=CHECK-STRICT3; RUN: llc < %s -mtriple=arm64-apple-darwin -mattr=+strict-align -fast-isel | FileCheck %s --check-prefix=CHECK-STRICT4 5define i32 @f0(ptr nocapture %p) nounwind {6; CHECK-STRICT: ldrh [[HIGH:w[0-9]+]], [x0, #2]7; CHECK-STRICT: ldrh [[LOW:w[0-9]+]], [x0]8; CHECK-STRICT: orr w0, [[LOW]], [[HIGH]], lsl #169; CHECK-STRICT: ret10 11; CHECK: ldr w0, [x0]12; CHECK: ret13 %tmp = load i32, ptr %p, align 214 ret i32 %tmp15}16 17define i64 @f1(ptr nocapture %p) nounwind {18; CHECK-STRICT: ldp w[[LOW:[0-9]+]], w[[HIGH:[0-9]+]], [x0]19; CHECK-STRICT: orr x0, x[[LOW]], x[[HIGH]], lsl #3220; CHECK-STRICT: ret21 22; CHECK: ldr x0, [x0]23; CHECK: ret24 %tmp = load i64, ptr %p, align 425 ret i64 %tmp26}27