; RUN: llc < %s -mtriple=x86_64-none-none-gnux32 -mcpu=generic | FileCheck %s ; RUN: llc < %s -mtriple=x86_64-none-none-gnux32 -mcpu=generic -fast-isel | FileCheck %s ; ; Ensures that landingpad instructions in x32 use the right Exception Pointer ; and Exception Selector registers. declare void @foo() declare void @bar(i8*, i32) noreturn declare i32 @__gxx_personality_v0(...) define void @test1() uwtable personality i32 (...)* @__gxx_personality_v0 { entry: invoke void @foo() to label %done unwind label %lpad done: ret void lpad: %0 = landingpad { i8*, i32 } cleanup ; The Exception Pointer is %eax; the Exception Selector, %edx. ; CHECK: LBB{{[^%]*}} %lpad ; CHECK-DAG: movl %eax, {{.*}} ; CHECK-DAG: movl %edx, {{.*}} ; CHECK: callq bar %1 = extractvalue { i8*, i32 } %0, 0 %2 = extractvalue { i8*, i32 } %0, 1 call void @bar(i8* %1, i32 %2) unreachable }