| ; RUN: opt < %s -instcombine -S -o - | FileCheck %s | 
 |  | 
 | ; CHECK: @a | 
 | define i32 @a(<4 x i64> %I) { | 
 | entry: | 
 | ; CHECK-NOT: trunc <4 x i64> | 
 |         %J = trunc <4 x i64> %I to <4 x i32> | 
 |         %K = extractelement <4 x i32> %J, i32 3 | 
 | ; CHECK: extractelement <4 x i64> | 
 | ; CHECK: trunc i64 | 
 | ; CHECK: ret | 
 |         ret i32 %K | 
 | } | 
 |  | 
 |  | 
 | ; CHECK: @b | 
 | define i32 @b(<4 x float> %I) { | 
 | entry: | 
 | ; CHECK-NOT: fptosi <4 x float> | 
 |         %J = fptosi <4 x float> %I to <4 x i32> | 
 |         %K = extractelement <4 x i32> %J, i32 3 | 
 | ; CHECK: extractelement <4 x float> | 
 | ; CHECK: fptosi float | 
 | ; CHECK: ret | 
 |         ret i32 %K | 
 | } | 
 |  |