1*9880d681SAndroid Build Coastguard Worker; RUN: opt < %s -instcombine -S | grep "mul i64" 2*9880d681SAndroid Build Coastguard Worker; rdar://6762288 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker; Instcombine should not promote the mul to i96 because it is definitely 5*9880d681SAndroid Build Coastguard Worker; not a legal type for the target, and we don't want a libcall. 6*9880d681SAndroid Build Coastguard Worker 7*9880d681SAndroid Build Coastguard Workerdefine i96 @test(i96 %a.4, i96 %b.2) { 8*9880d681SAndroid Build Coastguard Worker %tmp1086 = trunc i96 %a.4 to i64 ; <i64> [#uses=1] 9*9880d681SAndroid Build Coastguard Worker %tmp836 = trunc i96 %b.2 to i64 ; <i64> [#uses=1] 10*9880d681SAndroid Build Coastguard Worker %mul185 = mul i64 %tmp1086, %tmp836 ; <i64> [#uses=1] 11*9880d681SAndroid Build Coastguard Worker %tmp544 = zext i64 %mul185 to i96 ; <i96> [#uses=1] 12*9880d681SAndroid Build Coastguard Worker ret i96 %tmp544 13*9880d681SAndroid Build Coastguard Worker} 14