1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; This cannot be turned into a sign extending cast! 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Workerdefine i64 @test(i64 %X) { 6*9880d681SAndroid Build Coastguard Worker %Y = shl i64 %X, 16 ; <i64> [#uses=1] 7*9880d681SAndroid Build Coastguard Worker; CHECK: %Y = shl i64 %X, 16 8*9880d681SAndroid Build Coastguard Worker %Z = ashr i64 %Y, 16 ; <i64> [#uses=1] 9*9880d681SAndroid Build Coastguard Worker; CHECK: %Z = ashr exact i64 %Y, 16 10*9880d681SAndroid Build Coastguard Worker ret i64 %Z 11*9880d681SAndroid Build Coastguard Worker; CHECK: ret i64 %Z 12*9880d681SAndroid Build Coastguard Worker} 13*9880d681SAndroid Build Coastguard Worker 14