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