1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker 3*9880d681SAndroid Build Coastguard Worker; CHECK-LABEL: define i64 @test 4*9880d681SAndroid Build Coastguard Workerdefine i64 @test1(i32 %A) { 5*9880d681SAndroid Build Coastguard Worker; CHECK: %[[ADD:.*]] = add nsw i32 %B, %C 6*9880d681SAndroid Build Coastguard Worker; CHECK: %F = sext i32 %[[ADD]] to i64 7*9880d681SAndroid Build Coastguard Worker; CHECK: ret i64 %F 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Worker %B = ashr i32 %A, 7 ; <i32> [#uses=1] 10*9880d681SAndroid Build Coastguard Worker %C = ashr i32 %A, 9 ; <i32> [#uses=1] 11*9880d681SAndroid Build Coastguard Worker %D = sext i32 %B to i64 ; <i64> [#uses=1] 12*9880d681SAndroid Build Coastguard Worker %E = sext i32 %C to i64 ; <i64> [#uses=1] 13*9880d681SAndroid Build Coastguard Worker %F = add i64 %D, %E ; <i64> [#uses=1] 14*9880d681SAndroid Build Coastguard Worker ret i64 %F 15*9880d681SAndroid Build Coastguard Worker} 16*9880d681SAndroid Build Coastguard Worker 17