1; RUN: llc -mcpu=pwr7 -mattr=+vsx < %s | FileCheck %s 2target datalayout = "E-m:e-i64:64-n32:64" 3target triple = "powerpc64-unknown-linux-gnu" 4 5define double @foo1(double %a) nounwind { 6entry: 7 call void asm sideeffect "", "~{f0},~{f1},~{f2},~{f3},~{f4},~{f5},~{f6},~{f7},~{f8},~{f9},~{f10},~{f11},~{f12},~{f13},~{f14},~{f15},~{f16},~{f17},~{f18},~{f19},~{f20},~{f21},~{f22},~{f23},~{f24},~{f25},~{f26},~{f27},~{f28},~{f29},~{f30},~{f31}"() nounwind 8 br label %return 9 10; CHECK: @foo1 11; CHECK: xxlor [[R1:[0-9]+]], 1, 1 12; CHECK: xxlor 1, [[R1]], [[R1]] 13; CHECK: blr 14 15return: ; preds = %entry 16 ret double %a 17} 18 19define double @foo2(double %a) nounwind { 20entry: 21 %b = fadd double %a, %a 22 call void asm sideeffect "", "~{f0},~{f1},~{f2},~{f3},~{f4},~{f5},~{f6},~{f7},~{f8},~{f9},~{f10},~{f11},~{f12},~{f13},~{f14},~{f15},~{f16},~{f17},~{f18},~{f19},~{f20},~{f21},~{f22},~{f23},~{f24},~{f25},~{f26},~{f27},~{f28},~{f29},~{f30},~{f31}"() nounwind 23 br label %return 24 25; CHECK: @foo2 26; CHECK: {{xxlor|xsadddp}} [[R1:[0-9]+]], 1, 1 27; CHECK: {{xxlor|xsadddp}} 1, [[R1]], [[R1]] 28; CHECK: blr 29 30return: ; preds = %entry 31 ret double %b 32} 33 34define double @foo3(double %a) nounwind { 35entry: 36 call void asm sideeffect "", "~{f0},~{f1},~{f2},~{f3},~{f4},~{f5},~{f6},~{f7},~{f8},~{f9},~{f10},~{f11},~{f12},~{f13},~{f14},~{f15},~{f16},~{f17},~{f18},~{f19},~{f20},~{f21},~{f22},~{f23},~{f24},~{f25},~{f26},~{f27},~{f28},~{f29},~{f30},~{f31},~{v0},~{v1},~{v2},~{v3},~{v4},~{v5},~{v6},~{v7},~{v8},~{v9},~{v10},~{v11},~{v12},~{v13},~{v14},~{v15},~{v16},~{v17},~{v18},~{v19},~{v20},~{v21},~{v22},~{v23},~{v24},~{v25},~{v26},~{v27},~{v28},~{v29},~{v30},~{v31}"() nounwind 37 br label %return 38 39; CHECK: @foo3 40; CHECK: stxsdx 1, 41; CHECK: lxsdx [[R1:[0-9]+]], 42; CHECK: xsadddp 1, [[R1]], [[R1]] 43; CHECK: blr 44 45return: ; preds = %entry 46 %b = fadd double %a, %a 47 ret double %b 48} 49 50