; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -passes=instcombine -S %s | FileCheck %s ; The swifterror value can only be loaded, stored or used as swifterror ; argument. Make sure we do not try to turn the function bitcast into an ; argument bitcast. define swiftcc void @spam(i32** swifterror %arg) { ; CHECK-LABEL: @spam( ; CHECK-NEXT: bb: ; CHECK-NEXT: call swiftcc void bitcast (void (i64**)* @widget to void (i32**)*)(i32** swifterror [[ARG:%.*]]) ; CHECK-NEXT: ret void ; bb: call swiftcc void bitcast (void (i64**)* @widget to void (i32**)*)(i32** swifterror %arg) ret void } declare swiftcc void @widget(i64**)