; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 3 ; RUN: opt -S -passes=instsimplify < %s | FileCheck %s ; All of these constant expressions should fold. define <2 x float> @ga() { ; CHECK-LABEL: define <2 x float> @ga() { ; CHECK-NEXT: ret <2 x float> ; %fptrunc = fptrunc <2 x double> to <2 x float> ret <2 x float> %fptrunc } define <2 x double> @gb() { ; CHECK-LABEL: define <2 x double> @gb() { ; CHECK-NEXT: ret <2 x double> ; %fpext = fpext <2 x float> to <2 x double> ret <2 x double> %fpext } define <2 x i32> @gf() { ; CHECK-LABEL: define <2 x i32> @gf() { ; CHECK-NEXT: ret <2 x i32> ; ret <2 x i32> trunc (<2 x i64> to <2 x i32>) } define <2 x i32> @gh() { ; CHECK-LABEL: define <2 x i32> @gh() { ; CHECK-NEXT: ret <2 x i32> ; %fptoui = fptoui <2 x float> to <2 x i32> ret <2 x i32> %fptoui } define <2 x i32> @gi() { ; CHECK-LABEL: define <2 x i32> @gi() { ; CHECK-NEXT: ret <2 x i32> ; %fptosi = fptosi <2 x float> to <2 x i32> ret <2 x i32> %fptosi } define <2 x float> @gj() { ; CHECK-LABEL: define <2 x float> @gj() { ; CHECK-NEXT: ret <2 x float> ; %uitofp = uitofp <2 x i32> to <2 x float> ret <2 x float> %uitofp } define <2 x float> @gk() { ; CHECK-LABEL: define <2 x float> @gk() { ; CHECK-NEXT: ret <2 x float> ; %sitofp = sitofp <2 x i32> to <2 x float> ret <2 x float> %sitofp } define <2 x double> @gl() { ; CHECK-LABEL: define <2 x double> @gl() { ; CHECK-NEXT: ret <2 x double> ; ret <2 x double> bitcast (<2 x double> to <2 x double>) } define <2 x double> @gm() { ; CHECK-LABEL: define <2 x double> @gm() { ; CHECK-NEXT: ret <2 x double> ; ret <2 x double> bitcast (<2 x i64> to <2 x double>) }