16bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// RUN:  %clang_cc1 -triple arm64_be-linux-gnu -ffreestanding -emit-llvm -O0 -o - %s | FileCheck %s
26bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
36bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinesstruct bt3 { signed b2:10; signed b3:10; } b16;
46bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines
56bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// The correct right-shift amount is 40 bits for big endian.
66bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hinessigned callee_b0f(struct bt3 bp11) {
76bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines// CHECK: = lshr i64 %{{.*}}, 40
86bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines  return bp11.b2;
96bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89Stephen Hines}
10