Created
May 9, 2014 22:22
-
-
Save filcab/98de991762306cd86033 to your computer and use it in GitHub Desktop.
initial selection DAG weirdness
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
LLVM IR: | |
define <8 x double> @vsel_double8(<8 x double> %v1, <8 x double> %v2) { | |
%vsel = select <8 x i1> <i1 true, i1 false, i1 false, i1 false, i1 true, i1 false, i1 false, i1 false>, <8 x double> %v1, <8 x double> %v2 | |
ret <8 x double> %vsel | |
} | |
$ llc -mtriple=x86_64-apple-darwin -mcpu=corei7-avx -mattr=+avx -debug | |
=== vsel_double8 | |
Initial selection DAG: BB#0 'vsel_double8:' | |
SelectionDAG has 25 nodes: | |
0x103511f20: ch = EntryToken | |
0x103840a50: i1 = Constant<-1> | |
0x103840b58: i1 = Constant<0> | |
0x103840a50: <multiple use> | |
0x103840b58: <multiple use> | |
0x103840b58: <multiple use> | |
0x103840b58: <multiple use> | |
0x103840a50: <multiple use> | |
0x103840b58: <multiple use> | |
0x103840b58: <multiple use> | |
0x103840b58: <multiple use> | |
0x103840c60: v8i1 = BUILD_VECTOR 0x103840a50, 0x103840b58, 0x103840b58, 0x103840b58, 0x103840a50, 0x103840b58, 0x103840b58, 0x103840b58 [ORD=2] | |
0x103511f20: <multiple use> | |
0x103840000: v4f64 = Register %vreg0 | |
0x103840108: v4f64,ch = CopyFromReg 0x103511f20, 0x103840000 [ORD=1] | |
0x103511f20: <multiple use> | |
0x103840210: v4f64 = Register %vreg1 | |
0x103840318: v4f64,ch = CopyFromReg 0x103511f20, 0x103840210 [ORD=1] | |
0x103840840: v8f64 = concat_vectors 0x103840108, 0x103840318 [ORD=1] | |
0x103511f20: <multiple use> | |
0x103840420: v4f64 = Register %vreg2 | |
0x103840528: v4f64,ch = CopyFromReg 0x103511f20, 0x103840420 [ORD=1] | |
0x103511f20: <multiple use> | |
0x103840630: v4f64 = Register %vreg3 | |
0x103840738: v4f64,ch = CopyFromReg 0x103511f20, 0x103840630 [ORD=1] | |
0x103840948: v8f64 = concat_vectors 0x103840528, 0x103840738 [ORD=1] | |
0x103840d68: v8f64 = vselect 0x103840c60, 0x103840840, 0x103840948 [ORD=2] | |
0x103842220: v4f64 = Register %YMM0 | |
0x103511f20: <multiple use> | |
0x103842220: <multiple use> | |
0x103840d68: <multiple use> | |
0x103840e70: i64 = Constant<0> | |
0x103841e00: v4f64 = extract_subvector 0x103840d68, 0x103840e70 [ORD=3] | |
0x103842328: ch,glue = CopyToReg 0x103511f20, 0x103842220, 0x103841e00 [ORD=3] | |
0x103842430: v4f64 = Register %YMM1 | |
0x103842328: <multiple use> | |
0x103842430: <multiple use> | |
0x103840d68: <multiple use> | |
0x103841f08: i64 = Constant<4> | |
0x103842010: v4f64 = extract_subvector 0x103840d68, 0x103841f08 [ORD=3] | |
0x103842328: <multiple use> | |
0x103842538: ch,glue = CopyToReg 0x103842328, 0x103842430, 0x103842010, 0x103842328:1 [ORD=3] | |
0x103842538: <multiple use> | |
0x103842118: i16 = TargetConstant<0> | |
0x103842220: <multiple use> | |
0x103842430: <multiple use> | |
0x103842538: <multiple use> | |
0x103842640: ch = X86ISD::RET_FLAG 0x103842538, 0x103842118, 0x103842220, 0x103842430, 0x103842538:1 [ORD=3] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment